适配器模式主要是为了解决一些接口不兼容产生的解决方法。
适配器可以在不修改这些不兼容接口的情况下给使用者提供统一的包装过的适配接口。表面上看感觉和之前的门面模式又比较像,均是对其它对象或接口进行包装在呈现,而适配模式偏向的是解决兼容性问题,门面模式则是偏向方便性原则。
实例demo
const arr=['javascript','book','前端变成语言','8月1日']
function arr2objAdapter(arr){
return {
name:arr[0],
type:arr[1],
tittle:arr[2],
time:arr[3]
}
}
const adapterData=arr2objAdapter(arr)
实例demo1
$id=function(id){
return jQuery('#'+id)[0]
}
实例demo2 (参数不匹配)
function fun(obj){
obj.age = obj.age || 12;
obj.id = oj.id || 0;
obj.school = obj.school || null;
console.log(obj.age, obj,name, obj.school);
}
fun({
age:18,
school:"QDU"
});
这样一看,好像平时写代码的时候都有再用。
如果出现这些类似场景的时候,建议使用:
- 使用已经存在的对象,但其方法或属性不符合你的要求(那就想法弄成变量,可以变化的)
- 你想创建一个可复用的对象,该对象可以与其它不想关的对象或不可见的对象协同工作(接口方法或属性不兼容)
适配器一般应用在业务逻辑代码与使用的服务接口不匹配情况下,这种不匹配不单单是函数特征不匹配,甚至是参数不匹配等一些情况。这种模式并不会在设计的时候进行有意的创建,而是由于需求变更带来了这种模式的使用。
网友评论