티스토리 뷰
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 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- HTML
- 애플
- 모바일
- 디자인
- java
- 분석
- ms
- 도서
- 아이폰
- 클라우드
- r
- 프로젝트
- Hadoop
- SCORM
- mysql
- 세미나
- XML
- 통계
- 빅데이터
- 웹
- 마케팅
- 자바스크립트
- 맥
- 하둡
- 책
- 구글
- 자바
- 안드로이드
- fingra.ph
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함
Blog is powered by
Tistory / Designed by
Tistory