使用场景
有时候我们会遇到命名不完全相同,但是功能上,意义上是一样的东西,比如后端返回的数据,可能不同的接口,数据的属性名不一样,结构不一样。比如我们需要在不同的平台调用不同的方法等等。这时候就可以使用适配器模式。
适配器模式
适配器模式就是指使用一个函数对输入进行处理,然后输出符合我们想要的内容。通常每个适配器只负责一种适配。
使用方法
比如数据不一样的使用方法:
const data = [
{
name: 'foo',
age: 12
},
{
name: 'bar',
age: 11
}
]
function adaptor(data) {
return data.reduce((a, b) => {
a[b.name] = b.age
return a
},{})
}
const suitableData = adaptor(data)
另外就是接口的适配,有时候我们提供了一套api,但是内部的行为需要根据不同的平台进行实际的调用。
// 写点伪代码
function render() {
if (app) {
app.render()
} else if (web) {
web.render()
}
}