소프트웨어 관련/Design Pattern

[Design Pattern] Facade Pattern

JJangGu 2022. 7. 31. 20:08

이번에는 Facade Pattern 에 대해서 알아봅시다.

 

Facade Pattern

어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공. 퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있습니다.

 

이번에는 바로 디자인 원칙도 살펴보겠습니다. "최소 지식 원칙" 입니다. 객체 사이의 상호작용은 될 수 있으면 아주 가까운 사이에서만 허용하라는 원칙입니다.

 

 

 

퍼사드 패턴은 단순화된 인터페이스를 통해서 서브시스템을 더 쉽게 사용할 수 있도록 하기 위한 용도로 쓰입니다.

 

 

위의 예시에서 클라이언트는 HomeTheaterFacade 하나에만 상호작용을 하고 있습니다 (최소 지식 원칙)

 

HomeTheaterFacade 는 클라이언트 대신 모든 서브시스템 구성요소를 관리해주고 있고, 구성요소가 바뀌어도 클라이언트에는 아무 영향이 없습니다. 

 

위를 구현한 코드는 https://github.com/KyungSik9870/DesignPattern/tree/master/src/study/pattern/facade 여기서 확인할 수 있습니다. 😀