7. 퍼사드 패턴 (Facade Pattern)
- 용도 :
- 대규모 프로그램에는 서로 관련있는 클래스들이 많다. 그래서 복잡하게 얽혀있는 클래스들을 정리해서 높은 레벨의 인터페이스(API)를 제공할 수 있다! 즉, 간단하게 접근가능 하다는 소리!
- 여러 클래스들을 직접 제어하지 않고 '창구(Facade)에게 요구한다.
- 결과적으로 구현시에 간단한 인터페이스를 허용할 수 있게 한다.
요약 :
전자레인지를 타이머만 설정하고 버튼만 클릭하면 언제든지 동작 시킬 수 있다!
여기서 인련의 동작과정들을 이해할 필요가 없다는 것!
(만약 전자레인지 작동을 위해서 우리가 타이머의 전원을 넣고, 실행 신호를 보내고, 마이크로파 발생기 머시기를 직접 다 작동시킬 필요XXX)
그래서 제조사들은 단순한 버튼만으로 동작시킬 수 있게 편리한 인터페이스(퍼사드 패턴)를 제공한 것이다!
- 사용방법 :
여러 클래스들의 기능들을 묶은 Facade클래스를 만들고
Facade클래스에 접근한다!
ex1)
구조 :
- SubSystemOne 클래스
- SubSystemTwo 클래스
- SubSystemThree 클래스
- SubSystemFour 클래스
- Facade 클래스
결론 : Facade 클래스를 이용하면 외부 코드가 라이브러리의 안쪽 코드에 의존하는 빈도를 감소시킨다! 즉, 외부로부터 Facade 클래스를 이용하여 접근하기 때문에 클래스들간에 복잡하게 얽힐 일도 줄고 접근도 간단해진다.