D
D
Design Patterns
Github
Search…
D
D
Design Patterns
设计模式
关于 JavaScript
单例模式
工厂模式
策略模式
代理模式
迭代器模式
订阅-发布模式
命令模式
组合模式
模板方法模式
享元模式
职责链模式
中介者模式
装饰者模式
状态模式
适配器模式
设计模式原则
Powered By
GitBook
适配器模式
适配器模式「Adapter Pattern」:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器「Wrapper」
模式动机
假设我们现有的项目需要对接新的仓库,但是仓库中很多接口不适用于我们的项目,在这种情况下,我们不可能去修改库中的源代码,这个时候我们就需要将库中的接口套上一层适配器,就如同 vga 线转 hdmi 的转换器一样。
实现
假设谷歌地图与百度地图的渲染如下
1
const
googleMap
=
{
2
show
:
function
()
{
3
console
.
log
(
'开始渲染谷歌地图'
)
4
}
5
}
6
const
baiduMap
=
{
7
display
:
function
()
{
8
console
.
log
(
'开始渲染百度地图'
)
9
}
10
}
Copied!
但是我们的渲染函数
renderMap
默认调用地图的
show
方法,所以如果
renderMap
直接调用
baiduMap
那肯定会报错,所以我们可以写一个百度地图的适配器
1
var
baiduMapAdapter
=
{
2
show
:
function
()
{
3
baiduMap
.
display
()
4
}
5
}
6
// 这样就可以正确的渲染了
7
renderMap
(
googleMap
)
8
renderMap
(
baiduMapAdapter
)
Copied!
小结
适配器模式将目标类和适配者类解耦,增加了类的透明性和复用性,同时系统的灵活性和扩展性都非常好,更换适配器或者增加新的适配器都非常方便,符合「开闭原则」。
Previous
状态模式
Next
设计模式原则
Last modified
2yr ago
Copy link
Contents
模式动机
实现
小结