设计模式-适配器模式

模式简介

适配器模式就是将一个类的接口转换成客户希望的另一个接口,使得我们可以调用一些不兼容的接口,更好的实现了代码的复用。
在这里插入图片描述

举例

我们国家用的是220V的电压,美国使用的是110V的电压,假如一个美国笔记本电脑需要在中国使用,此时就需要一个电源适配器,不管是多少伏的电压,都能把电压变成需要的电压。

//  电源抽象接口, 
public interface Power {
    /*
     * @Param [voltage] 电压
     * @return void
     * @Date 2020/7/20
     **/
    void canUse(int voltage);
}

// 美国电源
public class USAPower implements Power{
    public USAPower() {
        System.out.println("美国电源使用110V电压");
    }
    @Override
    public void canUse(int voltage) {
        if(voltage == 110) {
            System.out.println("电压符合,可以使用。。。");
        }else {
            System.out.println("电压不符合,无法正常使用。。。");
        }
    }
}

如果给美国电源提供一个220V电压:

public class AdapterTest {
    public static void main(String[] args) {
        Power power = new USAPower();
        power.canUse(220);
    }
}

打印结果:

美国电源使用110V电压
电压不符合,无法正常使用。。。

此时需要为美国的电源提供一个电源适配器:

public class USAPowerAdapter implements Power{
	// 适配器内部对美国电源进行包装
    private USAPower usaPower = new USAPower();
    @Override
    public void canUse(int voltage) {
        if(voltage != 110) {
            System.out.println("电源适配器将电压转为110V...");
            voltage = 110;
        }
        usaPower.canUse(voltage);
    }
}

此时再提供220V的电压:

public class AdapterTest {
    public static void main(String[] args) {
       Power powerAdapter = new USAPowerAdapter();
       powerAdapter.canUse(220);
    }
}

打印结果:

美国电源使用110V电压
电源适配器将电压转为110V...
电压符合,可以使用。。。

使美国电源在220V电压下也可以正常工作,实现了适配的效果。

何时使用

  1. 当一个接口的数据和行为都正确时,但接口不符
  2. 使用一个已经存在的类,并且类的方法与你的要求不同,且该类也不太容易去直接修改。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值