发布于 

设计模式之适配器模式

适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。

应用场景

港式插头转换器,港式的电器插头比大陆的电器插头体积要大一些。如果从香港买一个Mac book,我们会发现充电器无法插在家里的插座上,为此而改造家里的插座显然不方便,所以我们需要一个转换插头

具体代码实现:

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
//港式大插头->大陆小插头
//源adaptee
//目标target
//适配器adapter

class Adaptee{
type:string='bigType';
request(){
console.log('这是大插头类型')
}
}

class Target{
type:string="smallType";
request(){
console.log('这是小插头类型');
}
}

class Adapter{
type:string = "Adapter";
change(adaptee:Adaptee){
if(adaptee.type!='bigType'){
throw new Error('Type error!')
}
const target = new Target()
target.request()
}
}

let adaptee = new Adaptee();
//未适配,输出:这是大插头类型
adaptee.request();
//适配器
const adapter = new Adapter();
//适配后,输出:这是小插头类型
adapter.change(adaptee);