14_适配器模式
1 简介
作用:解决两个软件实体间的接口不兼容的问题
现实中的适配器
- 港式插头转换器
- 电源适配器
- USB 转接口
2 应用
亡羊补牢
渲染广东省地图
从第三方资源里获得了广东省的所有城市以及它们所对应的 ID,并且成功地渲染到页面中
let guangdongCity = [
{ name: 'shenzhen', id: 11 },
{ name: 'guangzhou', id: 12 },
];
let render = fn => {
console.log('开始渲染广东省地图');
document.write(JSON.stringify(fn()));
}
render(guangdongCity)
新的数据结构
let guangdongCity = {
shenzhen: 11,
guangzhou: 12,
zhuhai: 13
}
新增数据格式转换的适配器
let addressAdapter = oldAddressfn => {
let address = {},
oldAddress = oldAddressfn()
for(let i = 0, c; c = oldAddress[i++]; ) {
address[c.name] = c.id
}
return () => {
return address
}
}
render(addressAdapter(getGuangdongCity))