본문 바로가기

Design Patterns

Facade Pattern ③ 정리

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
퍼사드 패턴을 사용하면.. 복잡한 시스템을 간소화 할 수 있습니다. 물론 복잡한 시스템을 직접 건드려서 사용하는 것도 가능하지만.. 간단하고 편리한 것을 원하는 경우에는 퍼사드 클래스를 이용하면 됩니다.

퍼사드는 인터페이스를 단순화 시킬 뿐만 아니라 클라이언트와 구성요소들로 이루어진 서브시스템을 분리시키는 역할도 합니다. 앞서 배웠던 어댑터와 퍼사드는 모두 여러 개의 클래스를 감쌀 수 있습니다만 퍼사드는 인터페이스를 단순화 시키기 위한 용도로 쓰이고, 어댑터는 인터페이스를 다른 인터페이스로 변환하기 위한 용도로 쓰입니다.

그럼.. 퍼사드를 또 그럴싸하게 알아보도록 하겠습니다.

어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공합니다. 퍼사드에서 고수준 인터페이스를 정의하기 때문에 서브시스템을 더 쉽게 사용할 수 있습니다.

이쯤에서 책에는 디자인 원칙! 해서.. '최소 지식 원칙' 이라는 것에 대한 언급을 합니다. 이게 뭔소리냐면.. 시스템을 디자인 할때, 어떤 객체든 그 객체와 상호작용하는 클래스의 갯수에 주의해야하며, 그런 객체들과 어떤 식으로 상호작용하는지에 대해서도 주의를 기울여야 한다는 뜻입니다.

최소 지식의 원칙 - 정말 친한 친구하고만 얘기하라

이 원칙을 지킴으로서 여러 클래스들이 복잡하게 얽혀서 시스템상의 변경이 생겼을때 다른 부분들까지 줄줄히 고쳐야 하는 경우를 미리 방지 할 수 있다고 합니다. 디자인 원칙이라는 것은 대충 다 비슷한 뉘앙스를 풍기고 있습니다. 연관성을 최소화 하고.. 의존도를 낮추는.. 클래스 하나하나를 컴포넌트화 하고.. 독립시키는것이 굉장히 중요하다는것을 강조 하고 있습니다.

사용자 삽입 이미지
요전.. EJB 에서 퍼사드를 사용한 그런 예를 보여주는것 같습니다 ^^..

복잡한 클래스의 연관성을 단순화 시켜주는 퍼사드 패턴.. 또 하나 배웠습니다!