디자인 패턴-파사드 패턴
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()