Builder Pattern
Builder pattern
constructs complex objects by separating construction and representation.
마치 건물을 세울 때 처럼 전체를 구성하고 있는 각 부분을 단계를 밟아 만들어 나가는 것 처럼 instance 를 만들어 나가는 패턴.
UML
구성 요소
- Builder :
ConcreteBuilder
의 interface 를 정의. - ConcreteBuilder :
Builder
를 구현. - Director :
Builder
를 이용해 instance 를 생성.
확장
Builder
는 목적을 달성하기 위해 필요충분한 interface 집합을 선언해야 한다.
또한 Builder
는 구현 클래스의 확장 요구에도 대응 할 필요가 있다.
적어도 가까운 미래에 발생할 것으로 예상 되는 변화는 적응할 수 있도록 설계해야 한다.
관련 패턴
Template Method
: Director 가 Builder 를 제어하는 구조는Template Method
의 상위 클래스가 하위 클래스를 제어하는 구조와 유사.Composite
:Builder
에 의해 만들어진 생성물이Composite
가 되는 경우가 있음.Abstract Factory
:Builder
와 마찬가지로 복잡한 인스턴스를 생성하는데 적격.Facade
:Facade
의 역할은 Director 의 역할과 유사하게 내부 모듈을 조합하여 단순한 interface 를 외부에 제공한다.