Java 디자인 모드의 작성자 모드(Builder 모드) 소개

2960 단어
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() {
  //
 };
}

복잡한 객체:제품 Product:
 
  
    public interface Product { }

복잡한 객체의 부품:
 
  
    public interface Part { }

Builder 모드를 호출하는 방법을 살펴보겠습니다.
 
  
ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );
director.construct();
Product product = builder.getResult();

Builder 모드의 응용
자바의 실제 사용에서 우리는 자주'풀'(Pool)이라는 개념을 사용한다. 자원 제공자가 충분한 자원을 제공할 수 없고 이 자원을 많은 사용자가 반복적으로 공유해야 할 때 풀을 사용해야 한다.
'풀'은 실제적으로 메모리이다. 풀에 복잡한 자원이 있는'단지'(예를 들어 데이터베이스 연결 풀, 때로는 연결이 끊길 수도 있다). 만약에 이런'단지'를 순환하여 다시 이용하면 메모리 사용 효율을 높이고 풀의 성능을 향상시킬 수 있다."Builder 모드에서 Director 클래스를 수정하여""부러진 다리""가 부러진 부품을 진단하고 복구합니다."

좋은 웹페이지 즐겨찾기