컴퓨터 공부/디자인 패턴

[7월 13일 2,3교시] Builder 패턴 2 + Abstract Factory 패턴

려리군 2009. 7. 13. 10:57

Builder vs Abstract Factory Pattern

Abstract Factory Pattern : 한번 호출할 때마다 제품(Product)을 생산하는데 필요한 관련된 모든 부품(Parts)을 반환한다.

즉, 페라리를 만들기 위해 페라리에 관련된 모든 부품을 반환하지만 제품을 반환하지 않는다.

Builder Pattern : 객체의 내부 상태에 따라 단계별로 부품을 생성하여 하나의 제품을 반환하기 때문에 Builder 패턴은 조립자(Assembler) 역할을 하는 것이 일반적이다.

 

Abstract Factory Pattern은 상태에 따라 어떤 객체를 생성하여 반환할 지에 포커스가 맞춰진 패턴

Builder Pattern은 제품 생성 단계(절차, 방법)에 따라 생성된 객체들을 어떻게 조립하여 어떤 완성품(Product)을 생성하여 반환할 지에 포커스가 맞춰진 패턴

 

Abstract Factory Pattern

관련된 부품으로 제품을 만든다.

Intent(의도)

구체적인 서브클래스를 정의하지 않고 독립적인 여러 객체의 군을 생성하기 위한 인터페이스를 제공.

다른 말로 Kit, 제품을 키트별로 제공.

 

Motivation

각 Widget별(윈도우의 컨트롤, XWindow의 form)로 추상화된 클래스를 정의해야 하고 이를 상속하는 구체적인 서브클래스를 정의

Widget Factory와 Widget은 서로 종속적인 관계다.

 

 

※ singleton 패턴은 static이므로 concrete를 재정의해서 사용하기 힘들다.

※ 주석을 적으면서 프로그래밍 할 것.