Js设计模式(结构型)之一--适配者模式

Adapter 适配者模式

1、适配器模式

将一个接口转换成客户端需要的接口而不需要去修改客户端代码,使得不兼容的代码可以一起工作。

适配器主要有3个角色组成:

(1)客户端:调用接口的类

(2)适配器:用来连接客户端接口和提供服务的接口的类

(3)适配者:提供服务,但是却与客户端接口需求不兼容服务类

2、简单实例

// 在客户端调用一个方法进行加法计算:
var result = add(1,2); 
// 但是我们没有提供add这个方法,但提供了同样类似功能的sum方法
function sum(v1,v2){ 
    return v1 + v2; 
} 
// 为了避免修改客户端和服务端,我们增加一个包装函数:
function add (v1,v2){ 
    reutrn sum(v1,v2); 
} 

我们在两个不兼容的接口之间添加一个包装方法,用这个方法来连接二者使其共同工作。这就是一个简单的适配器模式。

3、与其他模式的比较

Vs 代理模式

  同样都是创建一个新对象(包装一次),实现对本体的调用。但代理模式是为了管控原有对象(本体)的访问,代理的初衷并不是为兼容,并主张代理与本体对外接口保持一致。

  而适配器则是为兼容而生的 “转换器”,并不预处理请求,直接将请求转接给原接口,新接口与原接口名可能不同。

Vs 装饰器模式

  装饰者模式的作用是为对象添加功能,可添加多次,形成装饰链。而适配器只会对原有对象包装一次。

Vs 外观模式

  外观模式与适配器模式最大的区别,是定义了一个新的接口。

猜你喜欢

转载自www.cnblogs.com/doublewhy317/p/12060972.html
今日推荐