퍼사드 패턴
#
Find similar titles
Structured data
- Category
- Programming
호환성이 없는 인터페이스를 가지고 있는 객체를 올바른 인터페이스를 구현하는 객체로 감싸서 어댑터 패턴을 구현할 수 있다. 어댑터 패턴과 조금 다른 이유로 인터페이스를 단순화시키기 위해 인터페이스를 변경하는 디자인 패턴이 퍼사드 패턴(Facade)으로 하나 이상의 클래스의 복잡한 인터페이스를 퍼사드(겉모양, 외관)로 덮어 깔끔하면서도 말쑥하게 만들어 준다.
퍼사드 패턴의 정의
어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공한다. 퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있다.
퍼사드 패턴을 사용하려면 어떤 서브시스템에 속한 일련의 복잡한 클래스들을 단순화하고 통합한 클래스를 만들어야 한다. 다른 패턴과 달리 퍼사드 패턴은 상당히 단순한 편이다. 복잡한 추상화 같은 과정이 필요 없다. 퍼사드 패턴을 이용하면 클라이언트와 서브시스템이 서로 긴밀하게 연결되지 않아도 되고, 객체지향 원칙 중 하나인 최소 지식 원칙을 준수하는 데도 도움이 된다.
패턴이 어떤 용도로 쓰이는지를 잘 알아두는 것이 중요하고, 퍼사드 패턴은 단순화된 인터페이스를 통해서 서브시스템을 더 쉽게 사용할 수 있도록 하기 위한 용도로 쓰인다는 것을 알 수 있다.
<그림1. 퍼사드 패턴 클래스 다이어그램>
최소 지식 원칙
최소 지식 원칙에 따르면, 객체 사이의 상호작용은 될 수 있으면 아주 가까운 "친구" 사이에서만 허용하는 것이 좋다. 시스템을 디자인할 때 어떤 객체든 그 객체와 상호작용을 하는 클래스의 개수에 주의해야 하며, 그런 객체들과 어떤 식으로 상호작용을 하는지에도 주의를 기울여야 한다.
이 원칙을 잘 따르면 여러 클래스들이 복잡하게 얽혀서 시스템의 한 부분을 변경했을 때 다른 부분까지 줄줄이 고쳐야 하는 상황을 미리 방지할 수 있다. 여러 클래스들이 서로 복잡하게 의존하고 있다면 관리하기도 힘들고, 남들이 보기에도 이해하기 어려운, 불안정한 시스템이 되고 만다.