facade 건물의 정면(앞면), 창구
복잡하게 얽혀서 너저분한 세부 내용을 정리하여 높은 수준의 인터페이스(API)를 제공한다
facade 역은 시스템 외부에 간단한 인터페이스(API)를 보여준다
시스템 내부의 각 클래스의 역할과 의존 관계를 고려하여 올바른 순서로 클래스를 사용한다
Facade - 시스템을 구성하는 그 밖의 많은 역을 위한 단순한 창구, 높은 수준의 단순한 인터페이스(API)를 시스템 외부에 제공
시스템을 구성하는 그 밖의 많은 배역 - 각자의 일을 하고 Facade에 대해 신경 쓰지 않음, Facade로부터 호출을 받고 일하지만 수많은 다른 배역에서 Facade를 호출하는 경우는 없음
Client - Facade 패턴을 이용, Main 클래스
- 복잡한 것을 단순하게 보여준다. Facade 역은 그 복잡함을 의식하지 않아도 되게끔 한다.
(복잡한 것이란 내부에서 동작은 많은 클래스 사이의 관계나 사용 방법을 말한다.) - 핵심은 인터페이스(API) 수를 줄이는 것이다. 클래스와 메서드가 외부에서 많이 보이면 복잡도가 올라가고 호출 순서에도 유의해야 한다. 이 말은 외부와의 결합이 느슨하다고도 표현할 수 있다.
- 많은 클래스와 패키지를 가진 매우 큰 시스템일 경우 요소요소에 Facade 패턴을 적용할 수 있다.
'문제 및 이론 정리 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] Factory Method - 하위 클래스에서 인스턴스를 만든다 (0) | 2025.03.02 |
---|---|
[디자인패턴] State - 상태를 클래스로 표현한다 (0) | 2025.02.25 |
[디자인패턴] Composite - 그릇과 내용물을 동일시한다 (0) | 2025.02.23 |
[디자인패턴] Proxy - 필요해지면 만든다 (0) | 2025.02.22 |
[디자인패턴] Decorator - 장식틀과 내용물을 동일시한다 (0) | 2025.02.21 |