2009년 10월 9일 금요일

Abstract Factory Pattern

 

Abstract Factory Pattern

Abstract Factory : 추상적인 공장
추상적인 공장에서는 추상적인 부품을 조합해서 추상적인 제품을 만듭니다.
이게 무슨말인가?...
다시 말씀드리면..
오브젝트(객체) 지향에 있어서 추상적이란 단어는 구체적으로 어떻게 구현되고 있는지에 대해서는 생각하지 않고, 인터페이스(API)만 생각하는 상태라는 의미입니다.
즉, 부품의 구체적인 구현에는 주목하지 않고 인터페이스(API)에 주목합니다. 그리고 인터페이스(API)만을 사용해서 부픔을 조립하고 제품을 완성합니다.

 

등장인물

AbstractProduct(추상적인 제품)의 역할
: AbstractProduct는 AbstractFactory 역할에 의해 만들어지는 추상적인 부품이나 제품의 인터페이스 결정
  예제에서 Link, Tray, Page 클래스

AbstractFactory(추상적인 공장)의 역할
: AbstractFactory는 AbstractProduct 역할의 인스턴스를 만들어 내기 위한 인터페이스(API)를 결정
  예제에서 Factory 클래스

Client의 역할
: AbstractFactory역할과 AbstractProduct역할의 인터페이스(API)만을 사용해서 주어진 역할을 실행
  예제에서 Main 클래스

ConcreteProduct(구체적인 제품)의 역할
: ConcreteProduct는 AbstractProduct 역할의 인터페이스(API)를 구현
  예제에서
  listfactory패키지 : ListLink, ListTray, ListPage 클래스
  tablefactory패키지 : TableLink, TableTray, TablePage 클래스


ConcreteFactory(구체적인 공장)의 역할
: ConcreteFactory는 AbstractFactory 역할의 인터페이스(API)를 구현
  예제에서
  listfactory 패키지 : ListFactory 클래스
  tablefactory 패키지 : TableFactory 클래스

클래스 다이어그램

 

예제프로그램

소스파일은 받아서 보시기 바랍니다.. 여기에 쓰기엔 양이 좀 많네요...;;
자바소스의 경우 앞서 써놓은 곳에서 받으시거나 영진닷컴 홈페이지에 가서 받으실수도 있습니다.
으아아악.. 자바.. C# 좀.. 친해지면 안되겠니..;;

 

출처 : Java 언어로 배우는 디자인 패턴 입문(영진닷컴)

댓글 없음:

댓글 쓰기