外观模式(Facade Pattern)
作用是为一个复杂的子系统对外提供一个易用的接口.
Facade: 外观角色, 该角色在子系统和客户端之间做了一层隔离, 对客户端屏蔽了功能的具体实现细节, 只需要调用外观角色对外提供好的接口即可.
SubSystem: 子系统可以是一个类,也可以是一个功能模块或者是完整的系统
示例代码
// 子系统
public class SubSystemA {
public void methodA() {
// ... 业务代码
}
}
public class SubSystemB {
public void methodB() {
// ... 业务代码
}
}
public class SubSystemC {
public void methodC() {
// ... 业务代码
}
}
// 外观角色
public class Facade {
private SubSystemA subSystemA = new SubSystemA();
private SubSystemB subSystemB = new SubSystemB();
private SubSystemC subSystemC = new SubSystemC();
// 对外提供的接口
public void doSomething() {
// 将A, B, C系统的协作完成的功能封装到外观角色中
subSystemA.methodA();
subSystemB.methodB();
subSystemC.methodC();
}
}
// 客户端调用外观角色提供的接口
public class Test {
public static void main(String[] args) {
Facade facade = new Facade();
facade.doSomething();
}
}