서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공
Facade 클래스에서 고수준 인터페이스를 정의하기 때문에 Subsystem을 더 쉽게 사용할 수 있음
⇒ 복잡한 Subsystem을 Facade 클래스를 통해 편리하게 사용 가능
라이브러리 바깥쪽의 코드의 라이브러리의 안쪽 코드에 대한 의존도 감소
Client와 Subsystem 간의 결합도 감소
⇒ Client 입장에서 Subsystem을 사용해야 할때 다루어야 할 객체의 수 감소
Subsystem을 캡슐화하지 않기 때문에 Client에게 노출됨
Facade의 객체에 Subsystem의 모든 의존성 집중
⇒ God 객체가 될 수 있음
Adapter 패턴 : 특정 인터페이스를 다른 인터페이스로 변환 → 호환성
⇒ 래퍼(wrapper)가 특정 인터페이스를 준수해야 하며, 폴리모픽 기능을 지원해야 할 경우
Facade 패턴 : 인터페이스를 간단하게 변환하여 제공 → 단순화
⇒ 단지 쉽고 단순한 인터페이스를 이용하고 싶을 경우