언린이 2021. 9. 14. 09:45

Builder 패턴은 생성 인자가 많은 복잡한 인스턴스를 생성하는 방법과 표현하는 방법을 정의하는 Builder 클래스를 따로 분리하여, Builder 객체를 통해 구체적인 객체를 생성하는 패턴입니다.

 

 

구조

  • Builder
    • Prouduct 객체의 요소들을 생성하기 위한 추상 인터페이스를 정의합니다.
  • ConcreteBuilder
    • Builder에서 정의해둔 인터페이스를 구현하고 각 Product의 요소들을 정의, 구축하고 관리하며 복합 인스턴스(Product)가 어떻게 구성되는지에 관한 절차를 정의합니다.
  • Director
    • Builder 인터페이스를 사용하는 객체를 합성(생성)합니다.
  • Product
    • Builder 패턴을 사용하여 생성된 인스턴스입니다.

 

 

활용 상황

  • 복합 인스턴스의 생성 알고리즘이 복합 인스턴스의 조립 방법에 독립적일때 유용합니다.
  • 합성할 인스턴스의 표현이 서로 다르더라도 생성 절차를 지원해야 할때 유용합니다.

 

 

Builder 패턴의 장단점

  • 장점
    • 객체 생성에 필요한 파라미터의 의미를 코드 단에서 명확히 알 수 있습니다. (가독성이 좋습니다.)
    • 생성에 필요한 파라미터가 추가될때마다, 생성자 오버로딩을 안해도 됩니다.
  • 단점
    • 추가적인 Builder 클래스를 구현해야 합니다.