sitelink1 | http://blog.naver.com/gamediz/20040325465 |
---|---|
sitelink2 | |
sitelink3 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
1. Abstract Factory(추상 팩토리) 패턴
1) 정의
구체적인 클래스를 지정하지 않고, 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체들의 집합을 생성할 수 있는 인터페이스를 제공한다. |
추상 팩토리를 한마디로 정의 하자면 ‘데이터를 추상화 한다’ 이다.
풀어서 설명하자면 게임 세팅에 있어 내부 데이터를 인터페이스로부터 독립시키려는 패턴이라고 할 수 있다.
2) 예제
위의 설명이 잘 이해가 되는가? 아마도 이해가 잘 안될 것이다. 그렇다면 다음의 경우를 한번 보자.
[어느 공장장의 고민…] 저는 재료를 가공해서 완성품을 만드는 공장의 사장이예요… 저희 공장에서는 구리, 은, 금 등을 가공해서 장식용 구리검, 은검, 금검을 만들고 있지요 그런데 이번에 스테인레스로 검을 만들려고 재료를 늘렸는데 저희 공장 구조상 또 공장을 늘려야 해서 고민이 이만저만이 아니예요; 저희 공장이 이런 구조로 물건을 만들거든요 구리 -> [공장A] -> 구리검 은 -> [공장B] -> 은검 이런 형태로 만들다 보니 재료를 추가 할 때 마다. 공장을 새로 지어야 해서 고민이 이만 저만이 아니예요. 휴 어떻게 해결을 해야 할까요? |
[어느 공장장의 고민…]을 보면 공장이 제품을 만들 때 해당 재료에 맞는 공장이 따로 존재해서 재료가 추가 될 때 마다 공장을 추가해야 하는 리소스가 많이 먹히는 방식을 사용하고 있다는 것을 알 수 있다.
그렇다면 이 공장장의 고민을 해결해주기 위해서 필요한 것은 무엇일까?
그 것은 공장과 재료를 분리해 내는 일이다.
아래의 그림을 보자.
표3을 보면 하나의 공장이 있고 재료가 있다는 것을 볼 수 있다.
여기서 공장을 인터페이스, 재료를 데이터라고 규정할 수 있고, 인터페이스는 동일하되 재료를 무한으로 확장할 수 있다는 것을 알 수 있다. 공장장이 재료를 추가 할 때 마다 공장을 새로 지어야 하는 패턴에 비해 얼마나 확장성이 높은가?
이러한 패턴을 추상 팩토리 패턴이라고 한다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
23 | 비즈니스 패턴 | 황제낙엽 | 2008.04.10 | 158 |
22 | SOA Service Benefit Pattern | 황제낙엽 | 2008.04.10 | 129 |
21 | 패턴 입문가에게 권하는 책 - Head First Design Patterns (스토리가 있는 패턴 학습법) | 황제낙엽 | 2007.11.25 | 240 |
20 | 디자인 패턴(GoF) 카다로그 | 황제낙엽 | 2007.11.25 | 160 |
19 | 해석자(Interpreter) | 황제낙엽 | 2007.11.25 | 205 |
18 |
책임연쇄(Chain of Responsibility) 패턴
![]() | 황제낙엽 | 2007.11.25 | 205 |
17 |
복합체(Composite) 패턴
![]() | 황제낙엽 | 2007.11.25 | 180 |
16 |
Singleton(싱글턴) 패턴
![]() | 황제낙엽 | 2007.11.25 | 148 |
15 | Prototype(프로토 타입) 패턴 | 황제낙엽 | 2007.11.25 | 242 |
14 | Builder(빌더) 패턴 | 황제낙엽 | 2007.11.25 | 311 |
13 |
Factory Method(팩토리 메소드) 패턴
![]() | 황제낙엽 | 2007.11.25 | 310 |
» |
Abstract Factory(추상 팩토리) 패턴
![]() | 황제낙엽 | 2007.11.25 | 185 |
11 |
디자인패턴의 개요&기본 개념 정리
![]() | 황제낙엽 | 2007.11.25 | 128 |
10 | 디자인패턴과 리팩토링의 관계 | 황제낙엽 | 2007.11.20 | 209 |
9 | Template Method Pattern | 황제낙엽 | 2007.06.29 | 169 |
8 | The Facade Pattern | 황제낙엽 | 2007.05.23 | 131 |
7 | Factory Pattern | 황제낙엽 | 2007.04.21 | 132 |
6 | Decorator Pattern | 황제낙엽 | 2007.04.21 | 133 |
5 |
해드퍼스트 디자인패턴 샘플 예제 모음
![]() | 황제낙엽 | 2007.04.11 | 185 |
4 | Observer Pattern | 황제낙엽 | 2007.04.05 | 139 |