본문 바로가기

💻 개발IT/Design Patterns

5. Structural 패턴 - Facade Pattern

Facade Pattern

서브시스템의 인터페이스 집합에 대한 통합 인터페이스 제공하여 서브시스템을 더 쉽게 사용할 수 있도록 함

기능 추가 없이 오로지 통합 인터페이스 제공

목적

  • 인터페이스 집합에 단일 인터페이스 제공

사용하는 이유

  • 복잡한 시스템에 대한 접근을 위해 간단한 인터페이스 필요
  • 시스템 구현과 클라이언트 사이에 많은 종속성 존재
  • 시스템와 서브시스템은 계층화되어야

장점

  • 서브 시스템의 구현을 클라이언트에게 숨김
  • 서브 시스템을 더욱 쉽게 사용할 수 있도록 함
  • 서브 시스템과 클라이언트 간의 약한 결합도
    클라이언트에 영향을 주지 않고 서브시스템 내 클래스 변경 가능

vs. Adapter Pattern

  • Facade는 기존 시스템을 편하게 쓰기 위해서, Adapter는 기존 시스템을 다른 것처럼 사용하기 위해서
  • Facade는 추가 interface를 설계해야하고, Adapter는 구현부만 수정

vs. Mediator Pattern

  • Facade는 단방향 관계 (서브시스템은 Facade를 모름), Mediator는 colleague와 양방향 관계로 서로 알아야 함
  • Facade는 기능적 추가가 불가능하지만 Mediator는 가능

 

예시1

 

예시 2

 

예시 3 - 웹

반응형