门面模式
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
|