描述:用统一的接口访问一个系统
优点:解耦,复杂接口变得方便可用,内部可维护,迪米特法则对内封装对外暴露
缺点:不开闭,修改子类需要也修改外观类
应用:封装子类,独立出子类,维护项目时,对部分功能封装为新的类,提高复用性
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();
|