해당 포스트는 "자바 객체지향 디자인 패턴", "JAVA 언어로 배우는 디자인 패턴 입문" 책의 내용을 요약한 것이다.
※ 퍼사드(Facade) 패턴
어떤 서브시스템 일련의 인터페이스에 대한 통합된 인터페이스를 제공하는 패턴이다. 즉 서브 시스템의 기능을 사용할 수 있는 간단한 인터페이스를 제공한다.
ex)
class SubSystem1{ public void process(){ System.out.println("SubSystem1"); } } class SubSystem2{ public void process(){ System.out.println("SubSystem2"); } } class SubSystem3{ public void process(){ System.out.println("SubSystem3"); } } class Facade{ private SubSystem1 subSystem1; private SubSystem2 subSystem2; private SubSystem3 subSystem3; public Facade(){ subSystem1 = new SubSystem1(); subSystem2 = new SubSystem2(); subSystem3 = enw SubSystem3(); } public void process(){ subSystem1.process(); subSystem2.process(); subSystem3.process(); } } public class Main{ public static void main(String[] args){ Facade facade = new Facade(); facade.process(); } }
Facade 패턴은 복잡한 로직이나 클래스 관계들을 은닉시키고 간략화하여 외부에서는 간단하게 여러 기능들에 접근할 수 있도록 해준다. 해당 기능을 사용하는 클라이언트는 내부 로직의 순서와 구현이 어떻게 되었는 지에 대해서 알 필요가 없어진다. 또한 main 에서는 Facade 패턴이 적용된 기능의 내부 로직이 변경되었을 때 코드의 수정이 필요없다는 장점이 있다.
'자바 > 디자인패턴' 카테고리의 다른 글
생성자의 인자가 많을 시 빌더 패턴 (0) | 2017.06.08 |
---|---|
플라이웨이트 패턴 (0) | 2017.06.08 |
프로토타입 패턴 (0) | 2017.06.08 |
컴퍼지트 패턴 (0) | 2017.06.07 |
데코레이터(Decorator) 패턴 (0) | 2017.06.06 |