桥接模式

分离抽象接口及其实现部分。 桥接模式使用”对象间的关联关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。 所谓抽象和实现沿着各自维度的变化,也就是说抽象和实现不再在同一个继承层次结构中,而是”子类化”它们,使它们各自都具有自己的子类,以便任何组合子类,从而获得多维度组合对象。

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
39
40
41
42
43
44
abstract class TV{
setBrand(){
console.log('设置电视');
}
}

class ChangHong extends TV{
setBrand(){
console.log('长虹电视机');
}
}

class TCL extends TV{
setBrand(){
console.log('TCL电视机');
}
}

class RemoteController{
myTV:TV;

constructor(myTV:TV){
this.myTV = myTV;
}

on(){
console.log('打开电视机');
}

off(){
console.log('关闭电视机');
}

setBrand(){
this.myTV.setBrand();
console.log('设置成功');
}
}

let r1 = new RemoteController(new ChangHong());
let r2 = new RemoteController(new TCL());

r1.setBrand();
r2.setBrand();