使用Java实现适配器模式

小叮当有一台苹果手机,然后苹果手机充电需要使用Lightning接口,但是它没有苹果充电器,只有typec接口的小米充电器。这个时候,我们需要用一个适配器,将typc接口转换成Lightning接口,才能给苹果手机充电。

1-定义一个苹果手机类,它拥有一个接收电流的方法(充电),需要Lightning接口;同时定义Lightning接口,拥有充电方法。

public class Apple {

    /**
     * 接收电流(充电)
     * @param lightning
     */
    public void receiver(Lightning lightning){
        lightning.charge();
    }

}

public interface Lightning {

    /**
     * 苹果的充电器接口
     */
    void charge();
}

2-定义Typec接口,功能同Lightning一样,也是充电,并且定义一个实现类——小米充电器。

public interface TypeC {

    /**
     * typec充电器接口
     */
    void charge();
}


public class XiaoMiCharger implements TypeC {
    @Override
    public void charge() {
        System.out.println("小米充电器开始工作");
    }
}

3-定义一个适配器,继承Lightning接口,将TypeC接口转成Lightning接口。

public class Adapter implements Lightning {

    private TypeC typeC;

    public Adapter(TypeC typeC){
        this.typeC = typeC;
    }

    @Override
    public void charge() {
        typeC.charge();
    }
}

4-测试

    public static void main(String[] args) {
        //拥有一个苹果手机
        Apple apple = new Apple();

        //还有一个typec接口的小米充电器
        TypeC xiaomi = new XiaoMiCharger();

        //没有苹果手机的充电器,所以新建一个适配器,把小米充电器的typec接口转换成Lightning接口
        Adapter adapter = new Adapter(xiaomi);

        //开始充电
        apple.receiver(adapter);
    }