java实现适配器设计模式
①定义一个手机类
class Phone {
public void charge(int voltage) {
System.out.println("Current voltage is " + voltage + "V. Phone is charging...");
}
}
②定义一个电压类
class Voltage220V {
public int getVoltage() {
return 220;
}
}
③定义电源适配器
class PowerAdapter {
private final Voltage220V voltage220V;
public PowerAdapter(Voltage220V voltage220V) {
this.voltage220V = voltage220V;
}
public void charge(Phone phone) {
// 使用电源适配器将 220V 电压转换成 5V 电压
int voltage5V = voltage220V.getVoltage() / 44;
// 给手机充电
phone.charge(voltage5V);
}
}
④使用适配器给手机充电
public class Main {
public static void main(String[] args) throws Exception {
// 创建一个电源适配器
PowerAdapter adapter = new PowerAdapter(new Voltage220V());
// 使用电源适配器给手机充电
adapter.charge(new Phone());
}
}
⑤执行结果
Current voltage is 5V. Phone is charging...
Process finished with exit code 0
在这个示例中,Phone 类表示一个手机,它有一个 charge() 方法来充电。Voltage220V 类表示一个 220V 电源,它有一个 getVoltage() 方法来获取电压。PowerAdapter 类是电源适配器,它将 220V 电压转换成 5V 电压,然后给手机充电。
适配器模式可以将一个接口转换成客户端期望的另一个接口,使得原本不兼容的两个接口可以一起工作。