Node.js 디자인 패턴: 템플릿 메소드 패턴이 무엇인가요? js 템플릿 메소드 패턴 소개
이 기사에서는 js 디자인 패턴에 대한 내용을 제공합니다. 템플릿 메소드 패턴이란 무엇입니까? js 템플릿 메소드 패턴의 소개에는 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
템플릿 메소드 패턴이 무엇인가요?
정의: 작업에서 알고리즘의 골격을 정의하고 일부 단계는 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다.
주요 솔루션: 일부 메서드는 일반적이지만 이 메서드는 모든 하위 클래스에서 다시 작성됩니다.
사용 시기: 몇 가지 일반적인 방법이 있습니다.
해결 방법: 이러한 일반 알고리즘을 추상화하세요.
js 템플릿 방식 패턴 적용 예: 1. 집을 지을 때 기초, 배선, 수도관은 동일하지만 건축 후반부에만 벽장과 울타리를 추가하는 등의 차이가 있습니다. 2. 『서유기』에서 보살이 정한 81가지 어려움은 최상위 수준의 논리적 틀이다.
js 템플릿 메소드 패턴의 장점: 1. 상수 부분을 캡슐화하고 변수 부분을 확장합니다. 2. 유지 관리를 용이하게 하기 위해 공개 코드를 추출합니다. 3. 동작은 상위 클래스에 의해 제어되고 하위 클래스에 의해 구현됩니다.
js 템플릿 메서드 패턴의 단점: 각각의 구현에는 하위 클래스를 구현해야 하므로 클래스 수가 늘어나고 시스템이 더 커집니다.
js 템플릿 메서드 패턴 사용 시나리오: 1. 여러 하위 클래스에 공통된 메서드가 있으며 논리는 동일합니다. 2. 중요하고 복잡한 방법은 템플릿 방법으로 간주될 수 있습니다.
차 만들기와 커피 만들기
차와 커피를 만드는 과정의 유사점과 차이점을 비교해 봅시다
단계 | 차 만들기 | 커피 만들기 |
---|---|---|
1 | 물 끓이기 | |
2 | 스팀 티 | 커피 끓이기 |
3 | 컵에 붓기 | 컵에 붓기 |
4 | 레몬 넣기 | 설탕 넣기 |
2단계와 4단계에서 약간의 차이만 있음을 확실히 알 수 있습니다. 구현을 시작해 보겠습니다.
const Drinks = function() {} Drinks.prototype.firstStep = function() { console.log('烧开水') } Drinks.prototype.secondStep = function() {} Drinks.prototype.thirdStep = function() { console.log('倒入杯子') } Drinks.prototype.fourthStep = function() {} Drinks.prototype.init = function() { // 模板方法模式核心:在父类上定义好执行算法 this.firstStep() this.secondStep() this.thirdStep() this.fourthStep() } const Tea = function() {} Tea.prototype = new Drinks Tea.prototype.secondStep = function() { console.log('浸泡茶叶') } Tea.prototype.fourthStep = function() { console.log('加柠檬') } const Coffee = function() {} Coffee.prototype = new Drinks Coffee.prototype.secondStep = function() { console.log('冲泡咖啡') } Coffee.prototype.fourthStep = function() { console.log('加糖') } const tea = new Tea() tea.init() // 烧开水 // 浸泡茶叶 // 倒入杯子 // 加柠檬 const coffee = new Coffee() coffee.init() // 烧开水 // 冲泡咖啡 // 倒入杯子 // 加糖
Hook
손님이 양념(설탕, 레몬) 추가를 원하지 않으면 어떻게 하나요? ) 이때 도입할 수 있는 것은 Human Hooks를 사용하여 구현한 것이며 구현 로직은 다음과 같습니다.
// ... Drinks.prototype.ifNeedFlavour = function() { // 加上钩子 return true } Drinks.prototype.init = function() { // 模板方法模式核心:在父类上定义好执行算法 this.firstStep() this.secondStep() this.thirdStep() if (this.ifNeedFlavour()) { // 默认是 true,也就是要加调料 this.fourthStep() } } // ... const Coffee = function() {} Coffee.prototype = new Drinks() // ... Coffee.prototype.ifNeedFlavour = function() { return window.confirm('是否需要佐料吗?') // 弹框选择是否佐料 }
관련 권장 사항:
js 디자인 패턴: 조합 패턴은 무엇인가요? js 구성 패턴 소개
js 디자인 패턴: 관찰자 패턴(Publish-Subscribe 패턴)이란 무엇인가요? JS 관찰자 패턴 소개
위 내용은 Node.js 디자인 패턴: 템플릿 메소드 패턴이 무엇인가요? js 템플릿 메소드 패턴 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JavaScript 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

이 튜토리얼은 사용자 정의 Google 검색 API를 블로그 또는 웹 사이트에 통합하는 방법을 보여 주며 표준 WordPress 테마 검색 기능보다보다 세련된 검색 경험을 제공합니다. 놀랍게도 쉽습니다! 검색을 Y로 제한 할 수 있습니다

그래서 여기 당신은 Ajax라는이 일에 대해 배울 준비가되어 있습니다. 그러나 정확히 무엇입니까? Ajax라는 용어는 역동적이고 대화식 웹 컨텐츠를 만드는 데 사용되는 느슨한 기술 그룹을 나타냅니다. 원래 Jesse J에 의해 만들어진 Ajax라는 용어

이 기사 시리즈는 2017 년 중반에 최신 정보와 새로운 예제로 다시 작성되었습니다. 이 JSON 예에서는 JSON 형식을 사용하여 파일에 간단한 값을 저장하는 방법을 살펴 봅니다. 키 값 쌍 표기법을 사용하여 모든 종류를 저장할 수 있습니다.

코드 프레젠테이션 향상 : 개발자를위한 10 개의 구문 하이 라이터 웹 사이트 나 블로그에서 코드 스 니펫을 공유하는 것은 개발자에게 일반적인 관행입니다. 올바른 구문 형광펜을 선택하면 가독성과 시각적 매력을 크게 향상시킬 수 있습니다. 티

손쉬운 웹 페이지 레이아웃에 대한 jQuery 활용 : 8 에센셜 플러그인 jQuery는 웹 페이지 레이아웃을 크게 단순화합니다. 이 기사는 프로세스를 간소화하는 8 개의 강력한 JQuery 플러그인을 강조합니다. 특히 수동 웹 사이트 생성에 유용합니다.

이 기사는 JavaScript 및 JQuery Model-View-Controller (MVC) 프레임 워크에 대한 10 개가 넘는 튜토리얼을 선별 한 것으로 새해에 웹 개발 기술을 향상시키는 데 적합합니다. 이 튜토리얼은 Foundatio의 다양한 주제를 다룹니다

핵심 포인트 JavaScript에서는 일반적으로 메소드를 "소유"하는 객체를 말하지만 함수가 호출되는 방식에 따라 다릅니다. 현재 객체가 없으면 글로벌 객체를 나타냅니다. 웹 브라우저에서는 창으로 표시됩니다. 함수를 호출 할 때 이것은 전역 객체를 유지하지만 객체 생성자 또는 그 메소드를 호출 할 때는 객체의 인스턴스를 나타냅니다. call (), apply () 및 bind ()와 같은 메소드를 사용 하여이 컨텍스트를 변경할 수 있습니다. 이 방법은 주어진이 값과 매개 변수를 사용하여 함수를 호출합니다. JavaScript는 훌륭한 프로그래밍 언어입니다. 몇 년 전,이 문장은있었습니다
