新的跟旧的不兼容,也就是说使用者跟你现有的要求不兼容,需要进一步转化
介绍
- 旧接口格式和使用者不兼容
- 中间加一个适配转换接口
示例
- 国内的插头和欧洲等地的不一样,需要转换头转换一下。
常见使用场景
- 封装旧接口
javascript
ajax({
url: '/api/getData',
type: 'POST',
dataType: 'json',
data: { id: 1 },
}).done(() => {})
// 处理:添加适配器
const $ = {
ajax: (options) => ajax(options),
}
- vue computed
适配器模式代码示例
javascript
class Adaptee {
specificRequest() {
return '德国标准插头'
}
}
class Target {
constructor() {
this.adaptee = new Adaptee()
}
request() {
let info = this.adaptee.specificRequest()
return `${info} - 转换器 - 中国标准插头`
}
}
// test
let target = new Target()
let rst = target.request()
console.log(rst)
设计原理验证
- 将旧接口和使用者进行分离
- 符合开放封闭原则