飞雪连天射白鹿,笑书神侠倚碧鸳

0%

【23种设计模式】11外观模式

描述:用统一的接口访问一个系统
优点:解耦,复杂接口变得方便可用,内部可维护,迪米特法则对内封装对外暴露
缺点:不开闭,修改子类需要也修改外观类

应用:封装子类,独立出子类,维护项目时,对部分功能封装为新的类,提高复用性


classDiagram
  class SubSystem{
    +doOperationA()  void
  }
  class Facade{
    -subSystem : SubSystem
    constructor()
    +doOperation()  void
  }
  SubSystem --o Facade
  • 子类
    • 外观类访问子类的功能
    • 并暴露子类的接口
  • 通过实例化这个外观类,可以调用子类的方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class SubSystemA {
public doOperationA() : void {
console.log('子系统A的举动');
}
}
class SubSystemB {
public doOperationB() : void {
console.log('子系统B的举动');
}
}
class Facade {
private subSystemA : SubSystemA;
private subSystemB : SubSystemB;
constructor() {
this.subSystemA = new SubSystemA();
this.subSystemB = new SubSystemB();
}
public doOperation() : void {
this.subSystemA.doOperationA();
this.subSystemB.doOperationB();
}
}
const facade : Facade = new Facade();
facade.doOperation();
听说,打赏我的人最后都找到了真爱
↘ 此处应有打赏 ↙
// 用户脚本