Java设计模式之适配器模式

适配器模式

适配器模式(Adapter): 将一个类的接口转换成客户希望的另外的一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

注:适配器模式在后续Android课程中用到的地方非常之多,务必学懂!

这里写图片描述

我们可以从一个电源接口适配器的例子中加深理解

定义两个电源接口和其相应子类, 不过他们的内部方法不同!

interface PowerB{
    public void insert();
}
interface PowerA{
    public void connect();
}
class PowerAImpl implements PowerA{
    public void connect(){
        System.out.println("电源A接口开始工作");
    }
}
class PowerBImpl implements PowerB{
    public void insert(){
        System.out.println("电源B接口开始工作");
    }
}

适配器的核心代码如下

//可以适配电源A的适配器
class PowerAdapter implements PowerA{
    private PowerB b;

    public PowerAdapter(PowerB b){
        this.b = b;
    }

    public void connect(){
        b.insert();
    }
}

测试类

//针对方法不兼容的情况!!!
public class Test{
    public static void main(String[] arg0){
        PowerA a = new PowerAImpl();
        input(a);

        PowerB b = new PowerBImpl();

        //input(b);//不能直接用,因input方法只能接收PowerA接口
        PowerAdapter adapter = new PowerAdapter(b);
        input(adapter);
    }
    public static void input(PowerA a){
        a.connect();
    }

}

运行结果:
这里写图片描述

代码说明: 测试类中的input方法只能适用于PowerA, 所以我们需要写一个适配器PowerAdapter用来继承PowerA, 在该适配器中接收PowerB的对象然后做相应的转换来适配PowerA!

以上纯属个人见解, 如有不足之处希望有高人指出, 定感激不尽, 如有喜欢交流学习经验请给我留言谢谢.

原创文章, 转载请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值