Skip to content

新的跟旧的不兼容,也就是说使用者跟你现有的要求不兼容,需要进一步转化

介绍

  • 旧接口格式和使用者不兼容
  • 中间加一个适配转换接口

示例

  • 国内的插头和欧洲等地的不一样,需要转换头转换一下。

常见使用场景

  • 封装旧接口
javascript
ajax({
  url: '/api/getData',
  type: 'POST',
  dataType: 'json',
  data: { id: 1 },
}).done(() => {})

// 处理:添加适配器
const $ = {
  ajax: (options) => ajax(options),
}
  • vue computed

image.png

适配器模式代码示例

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)

设计原理验证

  • 将旧接口和使用者进行分离
  • 符合开放封闭原则