外观模式

  • 定义:为复杂类提供一个简单的接口

外观模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Facade {
constructor(subsystem1?, subsystem2?) {
this.subsystem1 = subsystem1 || new Subsystem1()
this.subsystem2 = subsystem2 || new Subsystem2()
}
operation() {
let result = ''
// 调用其他类的操作
result += this.subsystem1.operationN()
result += this.subsystem2.operationZ()
return result
}
}

class Subsystem1 {
operation1() {
// ...
}
// ...
operationN() {
// ...
}
}
class Subsystem2 {
operation1() {
// ...
}
// ...
operationZ() {
// ...
}
}
// ...

// 使用

const facade = new Facade()
facade.operation()

优缺点

  • 优点:可以使使用方独立与复杂子系统
  • 缺点:外观对象可能会成为与所有类都耦合的上帝对象