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 |
---|