A Blackhole

Builder Pattern

2018-06-02

Builder Pattern

Builder pattern constructs complex objects by separating construction and representation.

마치 건물을 세울 때 처럼 전체를 구성하고 있는 각 부분을 단계를 밟아 만들어 나가는 것 처럼 instance 를 만들어 나가는 패턴.

UML

builder-pattern

구성 요소

  • Builder : ConcreteBuilderinterface 를 정의.
  • ConcreteBuilder : Builder 를 구현.
  • Director : Builder 를 이용해 instance 를 생성.

확장

Builder는 목적을 달성하기 위해 필요충분한 interface 집합을 선언해야 한다.
또한 Builder는 구현 클래스의 확장 요구에도 대응 할 필요가 있다.
적어도 가까운 미래에 발생할 것으로 예상 되는 변화는 적응할 수 있도록 설계해야 한다.

관련 패턴

  • Template Method : DirectorBuilder 를 제어하는 구조는 Template Method의 상위 클래스가 하위 클래스를 제어하는 구조와 유사.
  • Composite : Builder에 의해 만들어진 생성물이 Composite가 되는 경우가 있음.
  • Abstract Factory : Builder와 마찬가지로 복잡한 인스턴스를 생성하는데 적격.
  • Facade : Facade의 역할은 Director 의 역할과 유사하게 내부 모듈을 조합하여 단순한 interface 를 외부에 제공한다.