Java 설계 모드 작성자 모드(Builder 모드) 소개

Builder 모드 정의: 복잡한 대상의 구축을 표시와 분리하여 같은 구축 과정에서 다른 표시를 만들 수 있도록 합니다.
Builder 모드는 복잡한 대상을 한 걸음 한 걸음 만드는 것입니다. 복잡한 대상의 유형과 내용만 지정하면 만들 수 있습니다.사용자는 내부의 구체적인 구축 세부 사항을 모른다.Builder 모드는 추상적인 공장 모드와 매우 유사하며 미세한 차이는 아마도 반복적인 사용에서만 느낄 수 있을 것이다.
왜 건설자 모드를 사용합니까
복잡한 대상을 구축하는 과정과 그 부품을 결합시키기 위해서다.참고: 결합 해제 프로세스와 부품입니다.
복잡한 대상 때문에 대량의 구성 부분이 있을 뿐만 아니라 자동차, 많은 부품이 있다. 바퀴, 핸들, 엔진, 그리고 각종 작은 부품 등, 부품이 매우 많지만 이것뿐만 아니라 이 부품을 어떻게 자동차로 조립하는지, 이 조립 과정도 매우 복잡하다. (좋은 조립 기술이 필요하다.) Builder 모델은 부품과 조립 과정을 분리하기 위한 것이다.
어떻게 건설자 모드를 사용합니까
먼저 복잡한 대상이 여러 부품으로 구성되어 있다고 가정합니다. Builder 모드는 복잡한 대상의 창설과 부품의 창설을 각각 Builder 클래스와 Director 클래스로 표시합니다.
먼저 복잡한 객체의 개별 부품을 작성하는 방법을 정의하는 인터페이스가 필요합니다.

public interface Builder {
 // A  
 void buildPartA();
 // B
 void buildPartB();
 // C
 void buildPartC();
 // ( )
 // , Director .
 //
 Product getResult();
}
Director 를 사용하여 마지막 복합 객체를 구성하고 위쪽 Builder 인터페이스에 봉인된 각 부품(복합 객체는 이러한 부품으로 구성됨)을 작성하는 방법, 즉 최종 품목으로 부품을 구성하는 방법에 대한 Director 컨텐트가 포함됩니다.

public class Director {
 private Builder builder;
 public Director( Builder builder ) {
  this.builder = builder;
 }
 // partA partB partC
 //
 public void construct() {
  builder.buildPartA();
  builder.buildPartB();
  builder.buildPartC();
 }
}
Builder의 구체적인 구현 ConcreteBuilder:
1. 구체적으로 인터페이스 Builder를 완성하여 제품의 부품을 구축하거나 조립한다.
2. 그것이 만들고자 하는 것이 무엇인지 정의하고 명확하게 한다.
3. 제품을 다시 얻을 수 있는 인터페이스를 제공한다.

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 interface Product { }
복잡한 객체의 부품:

    public interface Part { }
Builder 모드를 호출하는 방법을 살펴보겠습니다.

ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
director.construct();
Product product = builder.getResult();
Builder 모드 적용
Java의 실제 사용에서 우리는 자주 풀 개념을 사용한다. 자원 제공자가 충분한 자원을 제공할 수 없고 이런 자원이 많은 사용자에게 반복적으로 공유되어야 할 때 풀을 사용해야 한다.
'못'은 실제적으로 하나의 메모리이다. 만약에 연못에 복잡한 자원이 있는'절단'(예를 들어 데이터베이스의 연결 탱크, 때로는 연결이 끊길 수도 있음)이 있다면 만약에 이런'단지'를 순환하여 다시 이용하면 메모리 사용 효율을 높이고 연못의 성능을 향상시킬 수 있다.Builder 모드에서 Director 클래스를 수정하여 "단지"가 어느 부품에 부러졌는지 진단하고 이 부품을 복구합니다.

좋은 웹페이지 즐겨찾기