Builder Pattern


복합 객체의 생성 과정과 표현 방법을 분리함으로써 동일한 생성 공정이 서로 다른 표현을 만들 수 있게 한다.



구조





참여 객체


Builder : Product 객체의 일부 요소들을 생성하기 위한 추상 인터페이스를 정의한다.

ConcreteBuilder : Builder 클래스에 정의된 인터페이스를 구현하며, 제품의 부품들을 모아 빌더를 합성한다.

생성한 요소의 표현을 정의하고 관리한다. 또한 제품을 검색하는데 필요한 인터페이스를 제공한다.

Director : Builder 인터페이스를 사용하는 객체를 합성한다.

Product : 구축할 복합 객체를 표현한다. ConcreteBuilder 는 제품의 내부 표현을 구축하고 어떻게 모아 하나로 만드는지의

  과정을 정의한다.





작업관계



· The client creates the Director object and configures it with the desiredBuilder object

· Director notifies the builder whenever a part of the product should be built.

· Builder handles requests from the director and adds parts to the product.

· The client retrieves the product from the builder.


- 사용자는 Director객체를 만들고 목적빌더 객체와 함께 구성한다.

- Director는 제품의 일부를 빌드해야 할 때마다 빌더에게 알린다.

- 빌더는 Director로부터의 요구를 처리하고 제품에 파츠들을 추가한다.

- 사용자는 빌더로부터 제품을 받는다.




예제코드


<구성>



<메인(사용자)>


<Director>


<Builder(추상화)>


<ConcreteBuilder>



<Product(제품)>




'JAVA > 디자인 패턴' 카테고리의 다른 글

추상 팩토리 패턴(abstract factory pattern)  (0) 2017.09.26

+ Recent posts