디자인 모델 (5): 생 성 모델 - 건설 자 모델
2583 단어 건설 자 모드
아 날로 그:
표시 코드:
package com.javadesignpattern.builder;
public interface Builder {
public void buildPart1();
public void buildPart2();
public Product retrieveProduct();
}
package com.javadesignpattern.builder;
public class Product {
}
package com.javadesignpattern.builder;
public class ConcreteBuilder implements Builder {
private Product product = new Product();
public void buildPart1() {
// TODO Auto-generated method stub
System.out.println("---buildPart1---");
}
public void buildPart2() {
// TODO Auto-generated method stub
System.out.println("---buildPart2---");
}
public Product retrieveProduct() {
// TODO Auto-generated method stub
return product;
}
}
package com.javadesignpattern.builder;
public class Director {
private Builder builder;
public void construct(){
builder = new ConcreteBuilder();
builder.buildPart1();
builder.buildPart2();
builder.retrieveProduct();
}
//for test
public static void main(String[] args){
Director director = new Director();
director.construct();
}
}
에서 제품 에 대한 건설 자 모델 도 있 는데 그것 이 바로 여러 개의 건설 자, 여러 개의 produt 이 고 개 를 소개 하면 더 말 할 수 있다.
- - - - - 건설 자 와 추상 공장 의 차이 - - - - -
개인 적 으로 이 두 가지 모델 의 사용 장면 이 다르다 고 생각한다.추상 적 인 공장 은 부품 을 생산 하 는 데 쓰 이 고 건설 자 는 부품 을 조립 하 는 데 쓰 인 다.예 를 들 어 자동차의 예 를 들 어 우 리 는 추상 적 인 공장 으로 차 의 부품, 예 를 들 어 바퀴 엔진 등 을 생산 할 수 있다.자동차 에 도 대중, BMW, 아우디 등 브랜드 가 있다.이렇게 하면 단일 부품 의 생산 은 우 리 는 추상 적 인 공장 을 사용 할 수 있다.그러나 이 부품 들 을 어떻게 차 로 조립 하 느 냐 가 건설 자 모델 의 관심 사다.
- - - - 사용 장면 - - - - - - - - - - - - - - - - - - - -
A: 생 성 이 필요 한 제품 은 복잡 한 내부 구조 가 있 습 니 다.모든 내부 성분 자 체 는 대상 일 수도 있 고 대상 의 구성 부분 일 수도 있다.
B: 생 성 이 필요 한 제품 대상 의 속성 은 서로 의존 합 니 다.건설 자 모델 은 단계별 로 집행 되 는 건설 과정 을 강제 할 수 있다.만약 에 한 대상 의 한 속성 이 다른 속성 이 부 여 된 후에 진행 되 어야 한다 면 건설 자 를 사용 하 는 것 은 좋 은 디자인 사상 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 생 성 모델 ― 1.6 건설 자 모델<?php /** * 1.6 * : * * , * 。 * : * 1. * : * * 2. * : * * 3. * : * * 4. * * : * 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.