JavaScript设计模式系列五:适配器模式

不言
Lepaskan: 2018-04-02 14:05:44
asal
1133 orang telah melayarinya

本片文章给大家分享的是JavaScript设计模式系列五:适配器模式,有感兴趣的朋友可以看一下

什么是适配器模式

所谓 适配器模式 就是用一个新的接口对现有的接口进行包装,处理类与API的不匹配。使用这种模式的对象又叫作包装器。
比如我们有一个接口:

function api (x1, x2, x3) {
  console.log(x1 + x2 + x3);  // 用console.log来模拟接口的相关操作
}
Salin selepas log masuk

然后我们有一个对象数据:

var obj = {
  a: '我',
  b: '很',
  c: '帅'
}
Salin selepas log masuk

我们可以发现,我们的数据和接口的参数是不匹配的,无法直接参入obj调用该api。
这时候怎么办呢?我们可以定义一个适配器函数:

function adapter (o) {
  // 通过适配器函数来调用目的api
  api(o.a, o.b, o.c);
} 

adapter(obj);
// 我很帅
Salin selepas log masuk

这样,通过适配器函数 adapter() 我们就可以直接传入obj来调用api了,类与api的不匹配问题就引刃而解了。


总结

适配器模式就是用一个新的接口对现有的接口进行包装,处理类与API的不匹配。使用这种模式的对象又叫作包装器。
适用情况

  1. 使用一个已经存在的对象,但其方法或属性接口不符合我们的要求。

  2. 想要创建一个可复用对象,该对象可以与其他不相关的对象或不可见的对象协同工作

  3. 想使用的对象已经存在,但是不能对每一个都进行原型继承以匹配它的接口。对象适配器可以适配它的父对象接口方法或属性。

与其他模式的区别

  1. 适配器和桥接器虽然类似,但桥接的出发点不同,桥接的目的是将接口部分和实现部分分离,从而对他们可以更容易的更独立的加以改变。

  2. 装饰者模式增强了对象的功能而同时又不改变它的接口,因此它对程序的透明度比适配器要好。

  3. 代理模式再不改变它的接口条件下,为另一接口定义一个代理。

  4. 门面模式是为了简化一个接口,不提供额外额选择。

  5. 适配器则要把一个接口转换为另一个接口,并不会滤除某些能力也不会简化接口。

相关推荐:

JavaScript设计模式系列一:工厂模式

JavaScript设计模式系列三:建造者模式

Atas ialah kandungan terperinci JavaScript设计模式系列五:适配器模式. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan