엔진을 사용할때 전체 다 알 필요 없이 요약된 필요한 것들을 모아놓은것이 있으면 그것만 알면 대부분
돌릴 수 있다 하면 그런 중간자가 있다면 편할 것이다 그 중간자를 가르켜 Facade 패턴이라 하며
만약 엔진이 플렛폼 별로 다르고 다르다, 환경별로 facade 도 달라져야 한다면
Facade를 Abstract base class 로 만들어 상속 구조로 제공 할 수도 있다
서브시스템내의 객체를 변경 시키는 방법은 ?
Facade 생성시 Facade 에 서브시스템내의 객체를 연결 시켜준다
그런데 Abstract Factory 패턴으로 Facade 패턴을 대신해서 플렛폼 별 엔진 클래스들을 생성할 수 있지만
Abstract Factory 패턴을 쓰지 않는 다고 하면
Abstract base class 로 이루어진 Facade 패턴의 해당 플렛폼에 엔진 내부의 서브시스템을 복제(prototype) 해서 Facade 에 넘겨 줘서
Facade 가 서브 시스템을 사용 하게 할 수도 있다
(엔진의 내부 서브 시스템 이므로 클라이언트 단에서 엔진 내부를 변경 하는 것을 일반적으로 허용 하지 않으므로 복제해서 넘긴다)
반응형
'디자인패턴과방법론 > 디자인패턴' 카테고리의 다른 글
Proxy 패턴 (0) | 2012.11.02 |
---|---|
flyweight 패턴 (0) | 2012.11.02 |
Decorator(=wrapper) 패턴 (0) | 2012.11.02 |
composite 패턴 (0) | 2012.11.02 |
Bridge 패턴 (0) | 2012.11.02 |