여러 복잡한 요소들의 조합이 필요한 객체를 생성해야 하거나 또는 여러 개의 다양한 객체 집합을 생성해야 할 때 객체 생성만을 전담하는 컴포넌트를 정의하여 객체 생성을 간편하게 하는 것이다. 빌더 패턴에서 빌더의 특징을 정리하면 다음과 같다.
1. 흐름식(Fluent) 인터페이스를 이용하면 복잡한 생성 작업을 한 번의 호출 체인으로 처리할 수 있다.
2. 흐름식 인터페이스를 지원하려면 빌더 함수가 this 또는 *this를 리턴해야만 한다.
3. 사용자에게 빌더 API의 사용을 강제하기 위해, 타겟 객체의 생성자를 외부에 접근하지 못하게 설정하고 static create() 함수를 추가하여 생성된 객체를 리턴하게 한다.
4. 적절한 연산자를 정의하여 객체 자체적으로 빌더의 사용을 강제할 수도 있다.
5. 유니폼 초기화 문법을 이용하면 C++에서도 그루비 스타일 빌더를 만들 수 있다. 이러한 접근 방법으로 매우 일반적이며 다양한 DSL(도메인 특화 언어)을 만들 수 있다.
빌더 패턴의 활용은 객체의 생성 과정이 복잡할때에만 의미가 있다. 혼동될 여지가 없는 쉬운 생성자들과 몇 가지 정도의 파라미터만으로(종속성 주입 테크닉) 생성할 수 있는 객체라면 굳이 빌더를 사용할 필요가 없다.
RAII idiom (0) | 2021.05.07 |
---|---|
핌플 이디엄 Pimpl idiom (0) | 2021.05.07 |
싱글턴 패턴 SingleTon pattern (0) | 2021.05.07 |
빌더 패턴 Build pattern (0) | 2021.05.07 |
모노스테이트 패턴 Monostate pattern (0) | 2021.05.07 |
댓글 영역