해당 포스트는 "자바 객체지향 디자인 패턴", "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

+ Recent posts