小叮当有一台苹果手机,然后苹果手机充电需要使用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);
}