一、定义:外观模式(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();
}
}