디자인 패턴/생성 패턴
Builder 패턴
언린이
2021. 9. 14. 09:45
Builder 패턴은 생성 인자가 많은 복잡한 인스턴스를 생성하는 방법과 표현하는 방법을 정의하는 Builder 클래스를 따로 분리하여, Builder 객체를 통해 구체적인 객체를 생성하는 패턴입니다.
구조
- Builder
- Prouduct 객체의 요소들을 생성하기 위한 추상 인터페이스를 정의합니다.
- ConcreteBuilder
- Builder에서 정의해둔 인터페이스를 구현하고 각 Product의 요소들을 정의, 구축하고 관리하며 복합 인스턴스(Product)가 어떻게 구성되는지에 관한 절차를 정의합니다.
- Director
- Builder 인터페이스를 사용하는 객체를 합성(생성)합니다.
- Product
- Builder 패턴을 사용하여 생성된 인스턴스입니다.
활용 상황
- 복합 인스턴스의 생성 알고리즘이 복합 인스턴스의 조립 방법에 독립적일때 유용합니다.
- 합성할 인스턴스의 표현이 서로 다르더라도 생성 절차를 지원해야 할때 유용합니다.
Builder 패턴의 장단점
- 장점
- 객체 생성에 필요한 파라미터의 의미를 코드 단에서 명확히 알 수 있습니다. (가독성이 좋습니다.)
- 생성에 필요한 파라미터가 추가될때마다, 생성자 오버로딩을 안해도 됩니다.
- 단점
- 추가적인 Builder 클래스를 구현해야 합니다.