디자인 패턴-파사드 패턴

Facade 패턴은 시스템의 복잡성을 숨기고 클라이언트가 시스템에 액세스 할 수있는 인터페이스를 클라이언트에 제공합니다. 이러한 유형의 디자인 패턴은 기존 시스템에 인터페이스를 추가하여 복잡성을 감추기 때문에 구조적 패턴을 따릅니다.

이 패턴은 클라이언트에 필요한 단순화 된 메서드를 제공하고 기존 시스템 클래스의 메서드에 대한 호출을 위임하는 단일 클래스를 포함합니다.

이행

우리는 생성하려고하는 모양 인터페이스를 구현하는 구체적인 클래스 모양의 인터페이스를. 파사드 클래스 ShapeMaker 는 다음 단계로 정의됩니다.

ShapeMaker 클래스는 구체적인 클래스를 사용하여 이러한 클래스에 사용자 호출을 위임합니다. FacadePatternDemo , 데모 클래스는 사용 ShapeMaker의 결과를 표시하는 클래스.

1 단계

인터페이스를 만듭니다.

Shape.java

public interface Shape {
   void draw();
}

2 단계

동일한 인터페이스를 구현하는 구체적인 클래스를 만듭니다.

Rectangle.java

public class Rectangle implements Shape {

   @Override
   public void draw() {
      System.out.println("Rectangle::draw()");
   }
}

Square.java

public class Square implements Shape {

   @Override
   public void draw() {
      System.out.println("Square::draw()");
   }
}

Circle.java

public class Circle implements Shape {

   @Override
   public void draw() {
      System.out.println("Circle::draw()");
   }
}

3 단계

파사드 클래스를 만듭니다.

ShapeMaker.java

public class ShapeMaker {
   private Shape circle;
   private Shape rectangle;
   private Shape square;

   public ShapeMaker() {
      circle = new Circle();
      rectangle = new Rectangle();
      square = new Square();
   }

   public void drawCircle(){
      circle.draw();
   }
   public void drawRectangle(){
      rectangle.draw();
   }
   public void drawSquare(){
      square.draw();
   }
}

4 단계

파사드를 사용하여 다양한 유형의 모양을 그립니다.

FacadePatternDemo.java

public class FacadePatternDemo {
   public static void main(String[] args) {
      ShapeMaker shapeMaker = new ShapeMaker();

      shapeMaker.drawCircle();
      shapeMaker.drawRectangle();
      shapeMaker.drawSquare();		
   }
}

5 단계

출력을 확인하십시오.

Circle::draw()
Rectangle::draw()
Square::draw()