본문 바로가기
CS/Design Patterns

1-2. 빌더 패턴

by 빠니몽 2021. 10. 1.

21.07.28

 

1. 빌더 패턴이란

복잡한 객체를 생성, 표현하는 방법을 정의하는 클래스를 별도로 분리하여
서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공한다.

 

2. 구조

  • Builder : Product 객체의 일부 요소들을 생성하기 위한 추상 인터페이스 정의 / 복잡한 객체를 생성, 표현하는 방법 정의
  • ConcreteBuilder : Builder클래스에 정의된 인터페이스 구현, 제품의 부품들을 모아 빌더를 복합한다. 생성한 요소의 표현을 정의하고 관리한다. 제품을 검색하는 데 필요한 인터페이스 제공 / 서로 다른 표현
  • Director : Builder 인터페이스를 사용하는 객체를 합성 / 생성
  • Product : 생성할 복합 객체를 표현. ConctreBuilder는 제품의 내부 표현을 구축하고 복합 객체가 어떻게 구성되는지에 관한 절차를 정의

 

3. 활용성

  • 복합 객체 생성 알고리즘의 요소 객체들이 이들의 독립적인 조립 방법을 가지고 있을 때
  • 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해야 할 때

 

4. 결과

  1. 제품에 대한 내부 표현을 다양하게 변화할 수 있다.
    • Builder 객체는 Director에게 추상 인터페이스를 제공하고 제품을 복합하기 위해 필요한 추상 인터페이스를 정의한다.
  2. 생성과 표현에 필요한 코드 분리 가능.
    • 빌더 패턴 사용 시, 복합 객체를 생성하고 복합 객체의 내부 표현 방법을 별도의 모듈로 정의 가능
  3. 복합 객체를 생성하는 절차를 좀 더 세밀하게 나눌 수 있다.
    • 빌더 패턴은 한번에 복합 객체를 생성하지 않고 디렉터의 통제 아래 하나씩 내부 구성요소들을 만들어 나간다.

 

5. 추상 팩토리 패턴과의 유사성

  • 반환 시점 : Builder 패턴은 원할 때 반환. 추상 팩토리 패턴은 즉시 반환.

 

 

 

'CS > Design Patterns' 카테고리의 다른 글

1-1. 추상 팩토리 패턴  (0) 2021.09.09
1. 생성패턴  (0) 2021.09.04