빌더 모드 설명
1. 동일한 생성 과정이 다른 표현을 가질 수 있도록 복잡한 물체의 구성을 표현에서 구분하십시오. 이것을 빌더 패턴이라고합니다.
2. 객체 지향 언어의 설명, 주요 역할 :
1>. Builder Interface Class는 복잡한 구조적 대상을 나타내는 통합적이고 운영적인 행동 방식 인 Builder [Worker]를 정의합니다.
2>. ConcreteBuilder는 다양한 형태의 빌더의 인스턴스 개체를 생성하여 건축업자의 다른 표현을 나타내는 데 사용됩니다.
3>. 이 사령관은 빌더 인스턴스 성능과 분리하는 데 사용되는 빌더 인스턴스의 실행 프로세스와 형태를 안내하는 데 사용되며, 빌더 인스턴스를 안내하여 특정 규칙 순서로 제품 결과를 생성하고 생성하는 데 사용됩니다.
4>. resultObject에 의해 생성 된 결과는 결과 객체를 생성합니다. 이것은 감독 지침을 기반으로 특정 제작자가 만든 결과입니다.
3. Builder 모델은 실제로 사령관, 건축업자 및 사령관을 사용하여 특정 빌더에게 전화를 걸어 특정 빌더의 결과를 얻을 수있는 고객입니다.
4. 빌더 모드, 시뮬레이션 시나리오 : [빌더 모드의 설명을 보여주는 좋은 예를 참조하십시오.]
가족이 집을 짓기를 원하지만 집 주인이나 가족의 다른 사람들은 집을 짓는 방법을 모르기 때문에 몇 명의 노동자를 고용해야합니다. 하우스 빌딩 팀은 소유자의 아이디어에 따라 집을 짓기 위해 감독이 있어야합니다. 포먼은 소유자의 요구 사항에 따라 직원이하는 일을 설계하고 요구합니다.
포먼은 첫 번째 단계는 집의 전체 골격을 만드는 것입니다. 두 번째 단계는 침실을 만드는 것입니다. 세 번째 단계는 부엌을 장식하는 것입니다. 네 번째 단계는 거실을 짓는 것이며 다섯 번째 단계는 ...
감독은 아무것도하지 않지만 특정 건축업자는 감독의 요구 사항에 따라이를 수행해야합니다. 첫 번째와 두 번째 단계는 집 전체가 완성 될 때까지 건축됩니다.
제작자는이 집을 만들기위한 모든 기술, 즉 골격을 만들거나 침실을 장식하는 등, 즉 건축업자가하는 일 또는 능력이있는 것보다 사령관이해야 할 일 또는 능력이 있어야합니다.
즉, 사령관은 주최자이며 건축업자는 기술을 제공합니다.
5. JavaScript와 같은 약한 언어에서 인터페이스와 같은 것이없는 경우 인터페이스 정의 계층을 무시하고 특정 빌더를 직접 작성한 다음 건축업자를 호출하여 안내 클래스를 작성하십시오.
인스턴스 소스 코드
1. Worker Builder X :
코드 사본은 다음과 같습니다.
기능 WorkerBuilder () {
this.workOne = function () {
// 골격을 만듭니다
}
this.worktwo = function () {
// 침실을 만듭니다
}
this.workthree = function () {
// 부엌을 짓습니다
}
this.workfour = function () {
// 거실을 짓습니다
}
// ...
this.getResult = function () {
// 집을 짓습니다
var house = new House ();
//house.houseframe ...
귀환 하우스;
}
}
Workbuilder는 특정 빌더, Workone, 2는해야 할 일, 골격 등입니다.;
물론, Workbuilder는 근로자가 각 작업마다 다른 방법을 수행한다는 것을 나타 내기 위해 몇 가지를 더 구축 할 수 있습니다. 그러나 작업 내용은 동일합니다.
2. 사령관 카테고리
코드 사본은 다음과 같습니다.
기능 감독 () {
this.construct = function (builder) {
builder.workone ();
builder.worktwo ();
builder.workthree ();
builder.workfour ();
// ...
// 위의 내용을 순서대로 설정할 수 있으며 작업 항목도 설정할 수도 있습니다.
}
}
사령관 카테고리의 지침 방법에는 빌더의 작업 내용 중 여러 또는 모든 또는 모든 것을 포함하여 건축업자에 대한 콜백 참조가 포함됩니다. 사령관은 건축업자 근로자가해야 할 일을 조직하고 정리합니다.
3. 제품 하우스
코드 사본은 다음과 같습니다.
기능 하우스 () {
this.houseframe = '';
this.room = '';
this.kitchen = '';
this.livingroom = '';
// ...
}
4. 사용 방법
코드 사본은 다음과 같습니다.
var builder = new WorkBuilder ();
var Director = 새로운 Director ();
Director.construct (Builder);
var house = builder.getResult ();
네 번째 단계는 전체 용도가 고객과 동일하다는 것입니다. 소유자는 감독에게 집을 짓도록 요청하지만, 감독은 아무것도하지 않기 때문에 건축업자 노동자에게 아이를 건설하도록 지시하고 마침내 주인은 근로자로부터 건축 된 집을 얻습니다.
다른 지침
빌더 모델은 콘텐츠 [Abstract]가 복잡하고 작업 내용이나 주문이 일관되지 않은 상황과 같이 실제 장면이 다릅니다. 예를 들어, 각 사람의 일상 생활 과정 및 위의 예와 유사한 장면; 강사 계층을 통해 많은 유사한 작업장이지만 작업 규칙의 순서가 일치하지 않는 환경을 줄일 수 있습니다. 실제 물체의 구조 추상화를 크게 줄일 수 있습니다.