티스토리 뷰
Abstract Factory Pattern - 디자인 패턴
참고서적 : Head First Design Pattern
소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html
패턴 정의 #5 - Abstract Factory Pattern
추상 팩토리 패턴에서는 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성할 수 있습니다.
디자인 원칙
1. 추상화된 것에 의존하도록 만들어라. 구상 클래스에 의존하도록 만들지 않도록 한다.
추상 팩토리 패턴을 사용하면 클라이언트에서 추상 인터페이스를 통해서 일련의 제품들을 공급받을 수 있습니다.
이때, 실제로 어떤 제품이 생산되는지는 전혀 알 필요도 없습니다.
따라서 클라이언트와 팩토리에서 생산되는 제품을 분리시킬 수 있습니다.
- 클라이언트를 만들 때는 추상 팩토리를 바탕으로 만듭니다. 실제 팩토리는 실행시에 결정됩니다.
- AbstractFactory는 모든 구상 팩토리에서 구현해야 하는 인터페이스입니다. 제품을 생산하기 위한 일련의 메소드들이 정의되어 있습니다.
- 구상 팩토리에서는 서로 다른 제품군을 구현합니다.
클라이언트에서 제품이 필요하면 이 팩토리 가운데 적당한 걸 골라서 쓰면 되기 때문에 제품 객체의 인스턴스를 직접 만들 필요가 없죠.
- 각 구상 팩토리에서 필요한 제품들을 모두 만들 수 있습니다.
실제 PizzaStore에서 사용된 그림은 다음과 같습니다.
여기에서 클라이언트는 NYPizzaStore와 같은 것이 되겠죠...
그리고 NYPizzaStore의 팩토리 메소드로 사용된 createPizza() 함수 내에 재료를 나타내는 PizzaIngredientFactory에 대한 인스턴스를 포함하고 있게 됩니다.
'XML Developer > 디자인 패턴' 카테고리의 다른 글
[디자인 패턴#7] 커맨드 패턴 (0) | 2007.06.01 |
---|---|
[디자인 패턴#6] 싱글턴 패턴 (0) | 2007.05.22 |
[디자인 패턴#4] 팩토리 메소드 패턴 (0) | 2007.05.03 |
[디자인 패턴#3] 데코레이터 패턴 (0) | 2007.04.27 |
[디자인 패턴#2] 옵저버 패턴 (0) | 2007.04.24 |
댓글
Blog is powered by
Tistory / Designed by
Tistory