Facade Pattern

윤세영·2023년 7월 6일
0

DesignPattern

목록 보기
7/15

정의

  • 어떤 sub-system의 interface에 대한 통합된 interface를 제공하고 facade에서 고수준 interface를 정의하기 때문에 sub-system을 쉽게 사용할 수 있다.

장점

  • 더욱 더 간단한 interface를 만들 수 있다는 것이다.
  • 또한 client부와 sub-system을 분리할 수도 있다.
  • 만약 client를 facade로 만들었다고 하면 interface가 달라졌을 때 client는 변경할 필요 없이 facade만 변경하면 된다.
  • 그리고 표면에 드러나 있는 interface를 사용하고 그 내부는 알 필요가 없다.
최소지식원칙(=Law of Demeter)
  • system design에 있어서 어떤 object든 그 object와 상호작용하는 class의 수에 주의해야 하며, object들과 어떤 식으로 상호작용하는지도 주의해야 한다는 원칙이다.
  • 위 원칙을 지키기 위해서는 4 종류의 object의 method만 호출하면 되는데, 다음과 같다.
    • 객체 자체
    • Method에 parameter로 전달된 object
    • 그 method에서 생성하거나 instance를 만든 object
    • 그 object에 속하는 구성요소 (A has B)
Adapter Pattern, Facade Pattern, Decorator Pattern의 차이점
  • Adapter Pattern : 한 interface를 다른 interface로 변환하는 것이다. Interface를 변경해서 client에서 필요로 하는 interface로 적응시키는 위한 용도로 호환성을 위한다.
  • Facade Pattern : interface를 간단하게 바꾸는 것으로, 어떤 sub-system에 대한 간단한 interface를 제공하기 위한 용도로 사용되며 간편할 때 사용한다.
  • Decorator Pattern : interface를 바꾸지 않고 기능만 추가하는 것으로 Object를 감싸서 새로운 기능을 추가하기 위해서 사용한다.

정리

  • 기존 class를 사용하려고 하는데 interface가 맞지 않으면 adapter pattern을 사용한다.
  • 큰 interface 또는 여러 interface를 단순화 시키거나 통합시켜야 한다면 facade pattern을 사용한다.
  • Adapter Pattern은 interface를 client가 원하는 interface로 바꾸는 역할을 하고 Facade Pattern은 복잡한 sub-system과 분리하는 역할을 한다.
  • Adapter Pattern은 다중 Adapter로 만들 수 있고 Façade Pattern은 한 sub-system에 여러 개 만들 수 있다.
profile
Frontend

0개의 댓글