门面模式

image-20230420220206220

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class FacadeTest {
public static void main(String[] args) {

ShapeMaker shapeMaker = new ShapeMaker();
shapeMaker.draw();
}
}
class ShapeMaker {
private Circle circle;
private Rectangle rectangle;
public ShapeMaker(){
circle = new Circle();
rectangle = new Rectangle();
}
public void draw(){
circle.draw();
rectangle.draw();
}
}
class Circle{
public void draw() {
System.out.println("draw circle");
}
}

class Rectangle {
public void draw() {
System.out.println("draw rectangle");
}
}

模式定义:为子系统中的一组接口提供一个一致的接口,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

应用场景:

1.当您需要使用复杂子系统的有限但直接的接口时,请使用Facade模式。

2.当您想要将子系统组织成层时,请使用Facade。

优点

简化客户端的调用

源码中的经典应用

1
org.apache.catalina.connector.RequestFacade