21.07.28
1. 빌더 패턴이란
복잡한 객체를 생성, 표현하는 방법을 정의하는 클래스를 별도로 분리하여
서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공한다.
2. 구조
- Builder : Product 객체의 일부 요소들을 생성하기 위한 추상 인터페이스 정의 / 복잡한 객체를 생성, 표현하는 방법 정의
- ConcreteBuilder : Builder클래스에 정의된 인터페이스 구현, 제품의 부품들을 모아 빌더를 복합한다. 생성한 요소의 표현을 정의하고 관리한다. 제품을 검색하는 데 필요한 인터페이스 제공 / 서로 다른 표현
- Director : Builder 인터페이스를 사용하는 객체를 합성 / 생성
- Product : 생성할 복합 객체를 표현. ConctreBuilder는 제품의 내부 표현을 구축하고 복합 객체가 어떻게 구성되는지에 관한 절차를 정의
3. 활용성
- 복합 객체 생성 알고리즘의 요소 객체들이 이들의 독립적인 조립 방법을 가지고 있을 때
- 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해야 할 때
4. 결과
- 제품에 대한 내부 표현을 다양하게 변화할 수 있다.
- Builder 객체는 Director에게 추상 인터페이스를 제공하고 제품을 복합하기 위해 필요한 추상 인터페이스를 정의한다.
- 생성과 표현에 필요한 코드 분리 가능.
- 빌더 패턴 사용 시, 복합 객체를 생성하고 복합 객체의 내부 표현 방법을 별도의 모듈로 정의 가능
- 복합 객체를 생성하는 절차를 좀 더 세밀하게 나눌 수 있다.
- 빌더 패턴은 한번에 복합 객체를 생성하지 않고 디렉터의 통제 아래 하나씩 내부 구성요소들을 만들어 나간다.
5. 추상 팩토리 패턴과의 유사성
- 반환 시점 : Builder 패턴은 원할 때 반환. 추상 팩토리 패턴은 즉시 반환.
'CS > Design Patterns' 카테고리의 다른 글
1-1. 추상 팩토리 패턴 (0) | 2021.09.09 |
---|---|
1. 생성패턴 (0) | 2021.09.04 |