软件设计模式-【外观模式】

51 阅读1分钟

软件设计模式-【外观模式】

什么是外观模式

外部与一个子系统的通信通过一个统一的外观角色进行,为子系统中的一组接口提供一个一致的入口。

  • Facade(外观角色):在客户端可以调用这个角色的方法,在外观角色中可以知道相关的一个或多个子系统的功能和责任,正常情况下将来自客户端的请求委派到对应的子系统中去,传递给相应的子系统对象处理
  • SubSystem(子系统角色):每一个子系统是一个单独的类,也可以是一个类的集合,实现子系统的功能。每一个子系统都可以被客户端直接调用,或者被外观角色调用,它处理由外观类传过来的请求,子系统并不知道外观类的存在,对于子系统而已,外观角色仅仅是另一个客户端

image-20231024103119753.png

使用前后表现

image-20231024103009504.png

image-20231024103101299.png

代码实现

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");
  }
}