外观模式

一、定义:外观模式(facade)。为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

二、特点:定义系统的入口,在客户端类和复杂类之间建立一层,这一层将调用顺序、依赖关系等处理好。日志框架Slf4j是外观模式的典型应用,其作为外观层,为日志的具体实现如logback,log4j提供一个标准接口,提供了获取日志对象的通用方法。

三、缺点:违背了开闭原则,要改东西很麻烦。

四、示例代码

//子系统
public class ClassA  {
    public void show1(){
        System.out.println("print class a");
    }
}

//子系统
public class ClassB {
    public void show2() {
        System.out.println("print class b");
    }
}

/*外观类*/
public class SuperClass {
    private ClassA classA;
    private ClassB classB;

    public SuperClass() {
        classA = new ClassA();
        classB = new ClassB();
    }

    public void show() {
        classA.show1();
        classB.show2();
    }
}
//客户端类
public class Client {
    public static void main(String[] args) {
        SuperClass superClass =new SuperClass();
        superClass.show();
    }
}

原文地址:https://www.cnblogs.com/yfy-/p/12000358.html