> Java > java지도 시간 > Java 빌더 패턴 빌더 패턴에 대한 자세한 설명 및 예

Java 빌더 패턴 빌더 패턴에 대한 자세한 설명 및 예

高洛峰
풀어 주다: 2017-01-24 15:14:24
원래의
1480명이 탐색했습니다.

Java Builder 패턴

1. 개념

동일한 구성 프로세스가 다른 표현을 만들 수 있도록 복잡한 빌드를 표현에서 분리합니다. [시공과 프리젠테이션의 분리, 같은 시공이라도 다른 표현]

추상팩토리와의 차이점 : 빌더 패턴에는 빌더를 관리하는 멘토가 있고, 사용자는 멘토는 건축업자에게 연락하여 제품을 완성합니다. 즉, 구축 모드는 단계별 구축 프로세스를 시행할 수 있습니다.

구성 모드는 복잡한 내부 생성을 내부적으로 캡슐화합니다. 외부 호출자의 경우 빌더와 구성 도구만 전달하면 호출자는 완성된 제품이 내부적으로 어떻게 빌드되는지 신경 쓸 필요가 없습니다.

간단한 예로 자동차를 예로 들겠습니다. 부품, 바퀴, 핸들, 엔진, 각종 소형 부품 등이 있습니다. 부품도 많지만 조립 방법은 훨씬 더 많습니다. 이 부품을 자동차로 만든다고? 이 조립 과정도 매우 복잡합니다(좋은 조립 기술이 필요함). 빌더 모드는 구성 요소와 그룹을 결합하는 것입니다.

2. UML 다이어그램

Java Builder Pattern建造者模式详解及实例

3. 코드

public interface Builder { 
   void buildPartA(); 
   void buildPartB(); 
   void buildPartC(); 
 
   Product getResult(); 
 } 
 
 //具体建造工具
 public class ConcreteBuilder implements Builder { 
   Part partA, partB, partC; 
 
   public void buildPartA() {
     //这里是具体如何构建partA的代码
   }; 
   public void buildPartB() { 
     //这里是具体如何构建partB的代码
   }; 
    public void buildPartC() { 
     //这里是具体如何构建partB的代码
   }; 
    public Product getResult() { 
     //返回最后组装成品结果
   }; 
 }
 
 //建造者
 public class Director {
   private Builder builder; 
 
   public Director( Builder builder ) { 
     this.builder = builder; 
   } 
   public void construct() { 
     builder.buildPartA();
     builder.buildPartB();
     builder.buildPartC(); 
   } 
 } 
 
 
 public interface Product { }
 public interface Part { }
로그인 후 복사

빌더를 호출하는 방법은 다음과 같습니다.

ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
 
director.construct();
Product product = builder.getResult();
로그인 후 복사

4. Java 애플리케이션에서는 JavaMail은 이 모드를 사용합니다.

읽어주셔서 감사합니다. 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!

더 많은 Java Builder Pattern 빌더 패턴에 대한 자세한 설명과 예제를 보려면 PHP 중국어 웹사이트를 참고하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿