夜光序言:
因为活着,所以我们应该感恩。感恩是一种宽容和豁达,是一种伟大的情操。世上的一切都值得我们感恩,我们才会生活得更加美好。
正文:
以道御术 / 以术识道
package 适配器模式.类适配器;
public class Phone {
//充电
public void charging(IVoltage5V iVoltage5V){
if (iVoltage5V.output5V() == 5){
System.out.println("电压为5V,可以充电~~");
}else if (iVoltage5V.output5V() > 5){
System.out.println("电压过高。。");
}
}
}
package 适配器模式.类适配器;
//这边我们来写一个客户端,运行一下
public class Client {
public static void main(String[] args) {
System.out.println("----------类适配器模式---------");
Phone phone = new Phone();
phone.charging(new VoltageAdapter());
}
}
package 适配器模式.类适配器;
//适配器类
public class VoltageAdapter extends Voltage220V implements IVoltage5V{
@Override
public int output5V() {
//获取到220v电压
int srcV = output220V();
int disV = srcV / 44; //夜光:转成5V
return disV;
}
}
package 适配器模式.类适配器;
//写一个接口
//适配接口
public interface IVoltage5V {
//提供一个方法
public int output5V();
}
package 适配器模式.类适配器;
//被适配的类
public class Voltage220V {
//输出电压,夜光
public int output220V(){
int src = 220;
System.out.println("电压=" + src + "伏");
return src;
}
}
package 适配器模式.对象适配器;
//适配器类 -- 对象适配器
public class VoltageAdapter implements IVoltage5V {
private Voltage220V voltage220V; //第一步 关联关系 -- 聚合
//第二步:构造器,传入一个Voltage220V 实例
public VoltageAdapter(Voltage220V voltage220V) {
this.voltage220V = voltage220V;
}
@Override
public int output5V() {
/*//获取到220v电压
int srcV = output220V();
int disV = srcV / 44; //夜光:转成5V
return disV;*/
//重写一下这部分的代码
int dst = 0;
if (voltage220V != null){
int src = voltage220V.output220V(); //夜光:获取到220v的电压
System.out.println("使用对象适配器~~,进行适配~");
dst = src / 44;
System.out.println("-----------适配完成---------------");
System.out.println("输出的电压为:"+dst);
}
return dst;
}
}
package 适配器模式.对象适配器;
//这边我们来写一个客户端,运行一下
public class Client {
public static void main(String[] args) {
System.out.println("----------对象适配器模式---------");
Phone phone = new Phone();
phone.charging(new VoltageAdapter(new Voltage220V()
)); //这边要传入一个对象
}
}