设计模式之适配器模式

适配器模式

// 定义需要被适配的类
class Socket {
    output() {
       return "220V";
    }   
}

// 定义抽象类
abstract class Power {
    // 定义抽象类方法
    abstract charge(): string;
}
// 这个是来 实现 抽象方法
class PowerAdaptor extends Power{
    // 这里把他 定义成 公共的(public) 下面就可以识别到它了
    constructor(public socket: Socket) {
        super();
    }
    charge() {
        return this.socket.output() + "转化为22V";
    }
}

let adaptor = new PowerAdaptor(new Socket());
console.log(adaptor.charge());

结果如下:
在这里插入图片描述

举例说明:
如果我们的jquery 太久了没有维护了, 我们可以重新把ajax 改成axios的用法, 这个样子,
可以相当于做了一个适配, 只是举例说明, 并不推荐去改以前的代码, 防止出错

import $ from "jquery";
import axios from "axios";

// 这里的适配器 改成 axios的用法
function toAxiosAdaptor(options) {
    return axios({
        url: options.url,
        method: options.type
    });
}

// 写一个适配器 是改变里面的传参内容
$.ajax = function (options) {
    return toAxiosAdaptor(options);
}

// 这个是jquery的方法
$.ajax({
    url: "http://localhost:8080",
    type: "GET",
    success (data) {
        console.log(data);
    },
    error(error) {
        console.log(error);
    }
});

想要vscode 运行ts 代码的插件
在这里插入图片描述
在全局安装一下依赖包

npm install typescript ts-node @types/node@* -g

然后 在选中需要执行的代码
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值