>  기사  >  웹 프론트엔드  >  자바스크립트 디자인 패턴의 빌더 패턴 소개_javascript 기술

자바스크립트 디자인 패턴의 빌더 패턴 소개_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:23:521267검색

빌더 모드 지침

1. 동일한 생성 프로세스가 다른 표현을 가질 수 있도록 복잡한 객체의 구성을 표현과 분리합니다.
2. 객체지향 언어로 설명, 주요 역할:

1>. Builder 인터페이스 클래스는 복잡한 구조적 객체를 나타내는 빌더[worker]의 통합되고 작동 가능한 동작을 정의합니다. 2>. ConcreteBuilder는 Builder의 다양한 표현을 표현하기 위해 Builder의 다양한 형태의 인스턴스 객체를 생성[구현]하는 데 사용됩니다.
3>디렉터는 Builder 인스턴스의 실행 과정과 형태를 안내하고, Builder 인스턴스의 성능과 분리되어, Builder 인스턴스가 특정 규칙 순서에 따라 제품 결과를 생성하고 생성하도록 안내하는 데 사용됩니다.
4>. ResultObject에 의해 생성된 결과는 감독의 지침에 따라 특정 생성자가 생성한 결과입니다.

3. 빌더 모델은 실제로 커맨더, 빌더 및 커맨더를 사용하여 특정 빌더를 호출하여 작업하고 특정 빌더로부터 결과를 얻는 클라이언트입니다.

4. 빌더 모드, 시뮬레이션 시나리오: [빌더 모드 설명 예시를 보면 좋습니다.]

집을 짓고 싶은 가족이 있는데 집 주인이나 다른 가족 구성원이 집을 짓는 방법을 모르기 때문에 집을 짓는 팀에도 주택담보대출을 담당할 감독이 필요하다고 가정해 보겠습니다. 집 주인의 아이디어에 따라 집을 짓고, 감독은 주인의 요구 사항에 따라 집을 설계하고 작업자에게 방법을 묻습니다.

1단계는 집 전체의 뼈대를 세우는 작업, 2단계는 침실 짓기, 3단계는 주방 장식, 4단계는 거실 공사를 완성하고, 장식, 다섯번째 단계...

주임은 아무것도 하지 않지만, 특정 건축업자는 집 전체가 완성될 때까지 1단계, 2단계를 건축하면서 감독의 요구 사항을 따라야 합니다.

창작자는 이 집을 짓기 위한 모든 기술, 즉 뼈대 쌓기, 침실 꾸미기 등등... 즉, 건축자가 하는 일이나 그가 가진 능력이 그 이상이거나 그 이상이어야 합니다. 지휘관이 요구하는 것, 또는 능력과 동일합니다.

즉, 지휘관은 조직자이고, 건설자는 기술을 제공합니다.

5. JavaScript와 같은 약한 언어에는 인터페이스라는 것이 없으므로 인터페이스 정의 레이어를 무시하고 특정 빌더를 직접 만든 다음 빌더를 콜백하는 지침 클래스를 빌드합니다.

소스 코드 예시

1. 워커 빌더 X:


코드 복사 코드는 다음과 같습니다. 함수 workBuilder() {
This.workOne = function() {
             //집의 뼈대 만들기
}
This.workTwo=function() {
            //침실 만들기
}
This.workThree=function() {
             //주방 만들기
}
This.workFour=function() {
            //거실 만들기
}
//....
 
This.getResult = function() {
>   var house = new House();
​​​ //house.HouseFrame ...
  귀가; 
}
}




workBuilder는 특정 빌더 클래스이고, workOne과 Two는 수행해야 할 작업, 뼈대 만들기 등입니다.
물론 작업자를 대표하는 workBuilder를 여러 개 더 구축할 수 있습니다. 각 작업을 실행하는 방법은 다르지만 작업 내용은 동일합니다.


2. 지휘관 클래스

코드 복사

코드는 다음과 같습니다. 함수 디렉터() { This.construct = 함수(빌더) {
​​​​​ builder.workOne();
​​​​​ builder.workTwo();
​​​​​ builder.workThree();
            builder.workFour();
               //...
//위 내용의 순서를 설정할 수 있고, 작업 항목도 설정할 수 있습니다
}
}

커맨더 클래스 아래의 안내 메서드에는 빌더에 대한 콜백 참조가 있으며, 여기에는 빌더의 작업 내용 중 일부 또는 전체가 포함됩니다.

3. 프로덕트하우스

코드 복사 코드는 다음과 같습니다.

함수 하우스() {
This.HouseFrame = '';
This.Room = '';
This.Kitchen = '';
This.LivingRoom = '';
//...
}

4. 이용방법


코드 복사 코드는 다음과 같습니다.

var builder = new workBuilder();
var 디렉터 = 새 디렉터();
Director.construct(빌더);

var house = builder.getResult();

네 번째 단계는 고객에 해당합니다: 집주인. 집주인은 원장에게 집을 지으라고 요청하지만 감독은 아무것도 하지 않아 건축업자에게 집을 지으라고 지시합니다. 노동자들로부터 건축을 얻습니다.

기타 안내

빌더 모드는 모든 사람의 일상 과정과 같이 일관되지 않은 작업 내용이나 순서와 같이 내용[추상]이 복잡하고 실제 장면 성능이 다른 상황에 더 적합합니다. 시나리오; 강사 레이어를 통해 유사한 작업장이 많지만 작업 규칙의 순서가 일치하지 않는 상황의 수를 줄일 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.