js设计模式-适配器模式

说明:适配器模式表面上看起来像门面模式。它们都要对别的对象进行包装并改变其呈现的接口。但是两者的差别在于它们如何改变接口。门面元素展现的是一个简化的接口,它并不提供额外的选择,而且有时为了方便完成常见任务它还会做出一些假定。而适配器则要把一个接口转换为另外一个接口,它并不会滤除某些功能,也不会简化接口

适用场景:适用于客户系统期待的接口与现有API提供的接口不兼容这种场合。它只能用来协调语法上的差异问题。适配器所适配的两个方法执行的应该是类似的任务,否则的话它就解决不了问题。

例子:如果你有一个具有3个字符串参数的函数,但客户系统拥有的却是一个包含三个字符串元素的数组,此时就可以用一个适配器来衔接二者。

//字符串对象
var clientObj = {
    str1:"foo",
    str2:"bar",
    str3:"baz"
};
//接口函数
function interfaceFn(str1,str2,str3){
    //........
}
//适配器函数
function clientToInterfaceAdapter(o){
    interfaceFn(o.str1,o.str2,o.str3);
}
原文地址:https://www.cnblogs.com/tengri/p/5348374.html