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); }