- 퍼사드 디자인 패턴이란
퍼사드란 복잡한 서브시스템에 사용하는 고수준 추상화 메소드를 모아놓은 객체
퍼사드는 서브시스템과의 동작을 단순하게 만들지만 , 클라이언트에 사용을 강요하지 않는다.
퍼사드는 복잡한 시스템에 단순한 인터페이스를 제공할 때 사용.
클라이언트와의 모든 상호 작용이 퍼사드를 통해 이루어지기 때문에 퍼사드 패턴은 서브시스템에 유연성을 부여.
퍼사드 내부에서 사용하지만 클라이언트 코드와는 관련이 없는 외부 라이브러리에 대한 의존성을 낮춘다.
- 생활에서 퍼사트 패턴
a. 컴퓨터를 켤 경우 OS 는 컴퓨터의 내부 동작을 모두 숨기고 기계에 대한 간단한 인터페이스만 사용자에게 제공한다.
b. 자동차 :
사용자는 간단한 핸들, 가속페달 등의 인터페이스를 가지고 있지만 , 변속기와 엔진 등 자동차의 내부 동작이 정확히 어떻게 이루어지는 지 알 필요 없음.
차키를 넣고 돌릴경우, 자동차의 전자 부품이 서브 시스템에 여러 신호를 보내여 시동을 건다.
이는 시동이라는 단순한 인터페이스가 사용자에게 제공되어 가능 한 것이다.
위의 그림은 세가지 모듈을 구성하는 서브 시스템이다.
클라이언트 코드가 세 모듈을 직접 사용하면 유연성이 떨어짐.
한가지 부분이라도 수정 할경우 클라이언트 코드 역시 그에 맞춰 수정해야 하기 때문이다.
퍼사드 패턴을 사용하면 서브 시스템에 대한 호출을 하나의 함수 do_somthing 으로 합칠수있음.
퍼사드는 내부적으로 서브 모듈을 사용하여 호출 하고 클라이언트 코드에 응답을 반환.
클라이언트 코드는 이 세 모듈에 대해 아무것도 알 필요 없음.
퍼사드 do_somthing 을 호출 하고 원하는것을 받으면 된다.
- 장점
클라이언트와 서브 시스템의 연결을 느슨 하게 만든다.
서브시스템에 접근하는 인터페이스를 제공(수정 불필요)
더 단순한 인터페이스로 복잡한 서브시스템을 감싼다.
서브 시스템 구현의 유연성이 높아지고 클라이언트는 더욱 단순해짐.