# 适配器模式
将一个类的接口转化为另外一个接口,以满足用户需求,使类之间接口不兼容问题通过适配器得以解决。
简单来说就是:
原有的接口已经不能满足现在的要求,我们又不想修改原来的接口,通过加一层适配器使其满足我们的需求(如二头插头转三头插头)
# 例子
有两种动物,🐱 和 🐕,他们都会吃饭,但是现在要让他们会飞,两种方法,一种是修改原来的类,给它加个技能(方法)让它能飞,这种方法当动物很多的时候,需要修改很多类,不利于维护。另外一种方法:我们给它装个适配器,使它升级成超级动物满足我们需要。
class Dog {
constructor() {
this.name = "Dog";
}
eat() {
console.log(this.name + " is eating");
}
}
class Cat {
constructor() {
this.name = "Cat";
}
eat() {
console.log(this.name + " is eating");
}
}
// 给动物装上翅膀,让他们能飞
function putOnWings(animal) {
animal.prototype.fly = function() {
console.log(this.name + " is flying");
};
return new animal();
}
let dog = putOnWings(Dog);
dog.fly(); // Dog is flying
let cat = putOnWings(Cat);
cat.fly(); // Cat is flying
cat.eat(); // Cat is eating
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
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