Rumah > hujung hadapan web > tutorial js > JavaScript设计模式系列五:适配器模式

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

不言
Lepaskan: 2018-04-02 14:05:44
asal
1233 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!

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