Facade Pattern
서브시스템의 인터페이스 집합에 대한 통합 인터페이스 제공하여 서브시스템을 더 쉽게 사용할 수 있도록 함
기능 추가 없이 오로지 통합 인터페이스 제공
목적
- 인터페이스 집합에 단일 인터페이스 제공
사용하는 이유
- 복잡한 시스템에 대한 접근을 위해 간단한 인터페이스 필요
- 시스템 구현과 클라이언트 사이에 많은 종속성 존재
- 시스템와 서브시스템은 계층화되어야
장점
- 서브 시스템의 구현을 클라이언트에게 숨김
- 서브 시스템을 더욱 쉽게 사용할 수 있도록 함
- 서브 시스템과 클라이언트 간의 약한 결합도
클라이언트에 영향을 주지 않고 서브시스템 내 클래스 변경 가능
vs. Adapter Pattern
- Facade는 기존 시스템을 편하게 쓰기 위해서, Adapter는 기존 시스템을 다른 것처럼 사용하기 위해서
- Facade는 추가 interface를 설계해야하고, Adapter는 구현부만 수정
vs. Mediator Pattern
- Facade는 단방향 관계 (서브시스템은 Facade를 모름), Mediator는 colleague와 양방향 관계로 서로 알아야 함
- Facade는 기능적 추가가 불가능하지만 Mediator는 가능
예시1
예시 2
예시 3 - 웹
반응형
'💻 개발IT > Design Patterns' 카테고리의 다른 글
3. Behavior 패턴 - Chain-of-Responsibility Pattern (0) | 2022.07.20 |
---|---|
5. Structural 패턴 - Proxy Pattern (0) | 2022.07.20 |
4. Creational 패턴 - Prototype Pattern (0) | 2022.07.19 |
3. Behavior 패턴 - Visitor Pattern (0) | 2022.07.19 |
3. Behavior 패턴 - Command Pattern (0) | 2022.07.19 |
6. Compound 패턴 - MVC Pattern (0) | 2022.03.12 |
5. Structural 패턴 - Bridge Pattern (0) | 2022.03.10 |
5. Structural 패턴 - Composite Pattern (0) | 2022.03.09 |