定义

适配器模式的定义为:

适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。

简单来说,适配器模式主要用于解决接口不兼容问题。

例子

google 地图和百度地图都有渲染地图的函数,但接口命名不同。可以通过增加适配器去进行兼容。

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
var googleMap = {
show: function() {
console.log('开始渲染谷歌地图');
}
};

var baiduMap = {
display: function() {
console.log('开始渲染百度地图');
}
};

var renderMap = function(map) {
if (map.show instanceof Function) {
map.show();
}
};

var baiduMapAdapter = {
show: function() {
return baiduMap.display();
}
};

renderMap(googleMap);
renderMap(baiduMapAdapter);

总结

一般情况下,拿到不匹配的接口,我们很难去修改原有的代码,适配器模式可以很方便的解缺接口不匹配的问题,不需要修改接口代码,只要在接口外再包装一层。客户不需了解原有的接口,只要调用适配器就可以了。

参考

JavaScript设计模式与开发实践

本文地址 http://blog.acwong.org/2016/12/26/notes-of-javascript-patterns-adapter/