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

介绍

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

    示例

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

    常见使用场景

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

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

  1. - vue computed
  2. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1544252/1618124998659-2235a579-a421-4770-a39d-eaacd5e86498.png#align=left&display=inline&height=856&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1712&originWidth=1786&size=344440&status=done&style=none&width=893)
  3. <a name="i9iMF"></a>
  4. # 适配器模式代码示例
  5. ```javascript
  6. class Adaptee {
  7. specificRequest() {
  8. return "德国标准插头";
  9. }
  10. }
  11. class Target {
  12. constructor() {
  13. this.adaptee = new Adaptee();
  14. }
  15. request() {
  16. let info = this.adaptee.specificRequest();
  17. return `${info} - 转换器 - 中国标准插头`;
  18. }
  19. }
  20. // test
  21. let target = new Target();
  22. let rst = target.request();
  23. console.log(rst);

设计原理验证

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