0%

适配器模式

JQuey适配器

如果A框架和jQuery很像我,直接用适配器适配两种代码库中不兼容的代码,window.A=A=jQuery

参数适配器

当传递多个参数,记住参数顺序比较困难,所有我们经常以一个参数对象方式传入,调用它的时候又不知道传递的参数是否完整,如果有一些参数没有传入,一些参数是有默认值的等等,此时用适配器传入这个参数对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function doSomething(obj){
var _adapter={
name:'lala',
title:'设计模式',
age:24,
color:'pink',
size:100,
prize:50
}
for(var i in _adapter){
_adapter[i]=obj[i]||_adapter[i]
}

}

数据适配

var arr=[‘JavaScript’,’book’,’前端编程’]

这种数据结构语义不好,通常会适配成对象形式,比如:

1
2
3
4
5
6
7
8
9
10
function arrToObjAdapter(arr){
return {
name:arr[0],
type:arr[1],
title:arr[2]

}
}
var adapterData=arrToObjAdapter(arr)
console.log(adapterData)

服务器端数据适配

如果后端因为架构改变导致传递的数据结构发生变化,我们只需要写个适配器将传递过来的数据适配成对我们可用的数据再使用

1
2
3
4
5
6
7
8
9
10
11
12
13
function ajaxAdapter(data){
//处理数据并返回数据
return [data['key1'],data['key2'],data['key3']]
}
$.ajax({
url:'someAddress.php',
success:function(data,status){
if(data){
//使用适配器后的数据——返回的对象
doSomething(ajaxAdapter(data))
}
}
})