[设计模式] - 适配器模式 亡羊补牢,犹未晚矣

适配器模式(adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。

适配器模式适用场景

  1. 已经存在的类,他的方法和需求不匹配的情况
  2. 适配器模式不是软件你设计阶段考虑的设计模式,是随着软件维护,由于不同产品,不同厂家造成功能类似而接口不相同的情况下的解决方案。

适配器模式的应用场景

在手机充电时,我们通常用5V充电,而家里的电压却是220V。这时就需要我们的适配器 — 充电器了。
首先,创建AC220类,表示220V交流电

public class AC220 {

    public int output220V(){
        int output = 220;
        System.out.println("输出交流电:"+output+"v");
        return output;
    }
}

接着创建DC5接口,表示5V直流电的标准

public interface DC5 {
    int output5V();
}

创建电源适配器 PowerAdapter,让电源适配器实现DC5的标准。采用一种特殊的工艺,把220V降到5V。。。

public class PowerAdapter implements DC5 {

    private AC220 ac220;

    public PowerAdapter(AC220 ac220) {
        this.ac220 = ac220;
    }

    @Override
    public int output5V() {
        int adapterInput = ac220.output220V();
        int adapterOutput = adapterInput/44;
        System.out.println("使用充电器前电压:"+adapterInput+"v,使用之后:"+adapterOutput+"v");
        return adapterOutput;
    }
}

最后是测试

public class Test {
    public static void main(String[] args) {
        DC5 dc5 = new PowerAdapter(new AC220());

        dc5.output5V();
    }
}

通过电源适配器实现了二者的兼容。

适配器模式的优缺点

优点:

  1. 能提高类的透明性和复用,现有类复用但不需要改变。
  2. 目标类和适配器类解耦,提高程序的扩展性。
  3. 在业务场景中符合开闭原则
    缺点:
  4. 适配器编写过程需要全面考虑,可能会增加系统复杂性。
  5. 增加代码阅读难度,降低代码可读性,过多使用适配器会使系统变得凌乱。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值