定义
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,
子系统并不知道门面的存在,并且子系统也完全不相关,都是单独的存在。
我们都知道类与类之间的耦合越低,那么可复用性就越好,如果两个类不必彼此通信,那么就不要让这两个类发生直接的相互关系,如果需要调用里面的方法,可以通过第三者来转发调用。外观模式非常好的诠释了这段话。
实现
门面类
public class Facade {
//被委托的对象
SubSystemA a;
SubSystemB b;
public Facade() {
a = new SubSystemA();
b = new SubSystemB();
}
//提供给外部访问的方法
public void methodA() {
this.a.dosomethingA();
}
public void methodB() {
this.b.dosomethingB();
}
}
子系统
public class SubSystemA {
public void dosomethingA() {
System.out.println("子系统方法A");
}
}
public class SubSystemB {
public void dosomethingB() {
System.out.println("子系统方法B");
}
}
Main
public class Main {
public static void main(String[] args) {
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
}
--------结果----------
子系统方法A
子系统方法B