2016년 2월 23일 화요일

GoF의 디자인 패턴 - Builder

Creational Patterns(생성 패턴) :: Builder(빌더)

구분
 객체 생성 (Object Creational)

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

사용시기
 - 복합 객체의 생성 알고리즘이 복합 객체를 합성하는 요소 객체들과 상관없이 독립적일 때
 - 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해야 할 때

장점과 단점
 1. 제품에 대한 내부 표현을 다양화 시킬 수 있다.
 2. 생성과 표현에 필요한 코드의 분리

관련 패턴
 복잡한 객체의 생성에 있어서 추상 팩토리 패턴과 빌더 패턴은 비슷하다.
 차이가 있다면, 빌더 패턴은 복잡한 객체의 단계별 생성에 중점을 둔 반면, 추상 팩토리 패턴은 제품의 유사군들이 존재할 때 유연한 설계에 중점을 둔다.
 빌더 패턴은 생성의 마지막 단계에서 생성한 제품을 반환하는 반면, 추상 패토리 패턴은 만드는 즉시 제품을 반환한다. 제품 하나만으로도 의미가 있기 때문이다.


참조문헌
- GoF의 디자인패턴

댓글 없음:

댓글 쓰기