최대 1 분 소요

Facade는 서브시스템의 클래스들이 복잡하게 얽혀있고 사용이 어려운 경우, 단순하고 일관된 상위 수준의 통합 인터페이스를 제공합니다. 외부에서 내부 서브시스템을 몰라도 되므로, 사용하기 쉬워집니다.

설명

다음 그림은 Facade의 일반적인 구조입니다.

Client는 서브시스템의 클래스인 A, B, C, D, E를 직접 실행하지 않고, Facade를 통해 실행합니다. 묻지 말고 말하라 원칙의 대표적인 구현 구조라 할 수 있겠습니다.

Facade

특징

서브시스템을 쉽게 사용할 수 있으며, 서브시스템과 Client코드간의 결합도를 약하게 만드는 효과가 있습니다.

또한, 모듈의 경계에서 Facade를 만들 경우, Facade 바깥으로 예외가 전파되지 않도록 예외 레이어링을 할 수도 있습니다.

댓글남기기