Design Pattern for Smalltalk – Facade

t_Dpsc_chapter04_Facade_01

Facade는 불어로서 정면, 외관이라는 뜻이며 “퍼사드”라고 발음한다고 한다. 단어에서 의미하는 대로 이 패턴은 패턴에서 감싸고자 하는 클래스 그룹을 외부로부터 숨기고 편의에 맞게 사용하는 방법을 단순화시켜서 제공하는것에 그 목적이 있다.

보다 단순하게 설명하자면 단순화된 외부 인터페이스를 클라이언트에게 제공하는 게이트 웨이(관문)으로 표현할 수 있다.

여기까지만 들으면 객체지향의 요건중에 하나인 캡슐화(incapsulation)와 비슷하게 들리지만 결정적인 차이가 하나 있다. Facade패턴은 외부에서 내부로의 직접적인 접근을 막지는 않는다는 점이다. Facade 패턴의 주된 목적은 클라이언트로 하여금 여러 클래스들의 사용법을 일일히 익히게 하는 번거로움 대신에 Facade 클래스가 둘러싸는 클래스들에 대한 복잡한 사용법을 정리해서 대행하며 클라이언트에게는 필요한 최소 수준의 인터페이스만 제공함으로서 사용에 대한 번잡함을 막고 의사소통에 대한 최소한의 진행을 위한 단순함을 이루어 내는것에 있다고 할 수 있다.

t_Dpsc_chapter04_Facade_02

결과적으로 클래스의 배치 프로세스 batch process를 위한 편의성으로 이루어진 패턴이라는 것이 보다 정직한 표현이라 하겠다. Facade 패턴은 복잡한 로직을 감추고, 단순한 사용방법을 제공하며 클라이언트가 필요로 할 때 세부 클래스를 바로 접근하게도 해주는 “정돈하는 패턴”이라 할 수 있다.

One thought to “Design Pattern for Smalltalk – Facade”

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다