본문 바로가기
Design Pattern

[Design Pattern] 빌더 패턴(Builder Pattern)에 대해 알아보자

by 개발자J의일상 2022. 7. 28.
반응형

Definition

빌더(Builder)는 복잡한 객체를 단계별로 구성할 수 있는 패턴이다. 동일한 구성 코드를 사용하여 객체의 다양한 유형과 표현을 생성할 수 있다. 

Creational Patterns

Situation

복합 객체 구조를 구축하는 용도로 많이 쓰임

제품을 여러 단계로 나눠서 만들도록 제품 생산 단계를 캡슐화 하고 싶을 때 

Structure

Pros

복합 객체 생성 과정을 캡슐화 한다.

여러 단계와 다양한 절차를 거쳐 객체를 만들 수 있다 (팩토리 패턴은 한 단계에서 모든 걸 처리)

제품의 내부 구조를 클라이언트로부터 보호할 수 있다.

클라이언트는 추상 인터페이스만 볼 수 있기에 제품을 구현한 코드를 쉽게 바꿀 수 있다.

Cons

팩토리를 사용할 때 보다 객체를 만들 때 클라이언트에 관해 더 많이 알아야 한다.

비슷한 패턴

많은 디자인이 Factory Method(덜 복잡하고 하위 클래스를 통해 사용자 정의 가능)를 사용하여 시작하고, Abstract Factory, Prototype 또는 Builder(더 유연하지만 더 복잡함)로 발전한다.

 

Builder는 복잡한 객체를 단계별로 구성하는 데 중점을 둔다. Abstract Factory는 관련 객체의 패밀리 생성을 전문으로 한다. Abstract Factory는 제품을 즉시 반환하지만 Builder를 사용하면 제품을 가져오기 전에 몇 가지 추가 구성 단계를 실행할 수 있다.

 

재귀적으로 작동하도록 구성 단계를 프로그래밍 할 수 있으므로 복잡한 Composite 트리를 만들 때 Builder를 사용할 수 있다.

 

BuilderBride를 결합할 수 있다: director 클래스는 추상화의 역할을 하고 다른 builder는 구현의 역할을 한다.

 

Abstract Factory, Builder, Prototype은 모두 Singleton으로 구현될 수 있다.

 

헤드퍼스트 디자인패턴 개정판 - 에릭 프리먼
https://refactoring.guru/design-patterns/builder
300x250

댓글