软件设计模式-【外观模式】
什么是外观模式
外部与一个子系统的通信通过一个统一的外观角色进行,为子系统中的一组接口提供一个一致的入口。
- Facade(外观角色):在客户端可以调用这个角色的方法,在外观角色中可以知道相关的一个或多个子系统的功能和责任,正常情况下将来自客户端的请求委派到对应的子系统中去,传递给相应的子系统对象处理
- SubSystem(子系统角色):每一个子系统是一个单独的类,也可以是一个类的集合,实现子系统的功能。每一个子系统都可以被客户端直接调用,或者被外观角色调用,它处理由外观类传过来的请求,子系统并不知道外观类的存在,对于子系统而已,外观角色仅仅是另一个客户端
使用前后表现
代码实现
class Facade {
var subSysA = SubSysA();
var subSysB = SubSysB();
var subSysC = SubSysC();
method1() {
subSysA.method();
subSysB.method();
}
method2() {
subSysA.method();
subSysC.method();
}
//....
}
class SubSysA {
method() {
print("SubSysA");
}
}
class SubSysB {
method() {
print("SubSysB");
}
}
class SubSysC {
method() {
print("SubSysC");
}
}