适配器模式往往用于适配两个接口不兼容的问题,在js中应用更为广泛,比如适配两个代码库、适配前后端数据。
1.参数适配
比如某个方法中需要传入多个参数
function doSomething(name,title,age,type,color,size){}
记住这些参数顺序很难,所以我们经常是以一个参数的形式传进去
obj.name:name
obj.title:title
obj.age:age
obj.type:type
……
function doSomething(obj){}
//但是有的时候传入参数不完整或者默认的情况,这个时候我们需要适配器适配传入的参数对象
function doSomething(obj){
var _adapter={
name:'设计模式',
title:'js',
age:2,
color:'red'
}
for(var i in _adapter){
return _adapter[i]=obj[i]||_adapter[i];
}
}
2.数据适配:
var arr = ['javascript','book','8月1号','设计模式']
数据格式每个成员语义不同,通常转换成对象形式,
function adapterData(arr){
return {
name:arr[0],
type:arr[1],
time:arr[2],
title:arr[3]
}
}
进而将数组转成了下面的格式:
var obj={
name:'',
type:'',
time:'',
title:'',
}
var data = adapterData(arr);
//{name: "javascript", type: "book", time: "8月1号", title: "设计模式"}
3.服务器端数据适配
往往后端返回的数据格式不是我们想要的格式,通常我们会将数据适配成正确的格式,然后进行操作。