定义
又称为门面模式,为子系统中一组接口提供一个统计的入口。外观模式定义了一个高层接口,方便了客户端与子系统之间的访问。
结构图
角色与理解
- 外观模式共分为四种角色:
- Facade(外观角色):客户端调用子系统功能的入口,正常情况下,它将所有客户端发过来的请求委托给相应的子系统处理
- SubSystem(子系统):可以是一个类、一组类、一个模块或者是一个系统,可以被客户端直接调用或者被外观类调用。子系统并不知道外观的存在,对于它而言外观也是客户端
核心代码
外观角色
public class Facade {
private SubSystemA sa;
private SubSystemB sb;
private SubSystemC sc;
public Facade() {
sa = new SubSystemA();
sb = new SubSystemB();
sc = new SubSystemC();
}
public void show() {
sa.show();
sb.show();
sc.show();
}
}
子系统
public class SubSystemA {
public void show() {
System.out.println("aaa");
}
}
public class SubSystemB {
public void show() {
System.out.println("bbb");
}
}
public class SubSystemC {
public void show() {
System.out.println("ccc");
}
}
客户端
public class Client {
public static void main(String[] args) {
Facade facade = new Facade();
facade.show();
}
}