适配器模式的定义:将一个类的接口转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以相互合作。这个定义还好,说适配器的功能就是把一个接口转成另一个接口。
了解了定义之后,我们就开始以手机充电为例子,来进行代码的编写:
首先,创建一个5v的接口对象:
package 适配器模式;
public interface V5Power {
public int provideV5Power();
}
再创建手机的对象:
package 适配器模式;
/**
* 充电
* @author Administrator
*
*/
public class Mobile {
public void inputPower(V5Power power) {
int provideV5Power = power.provideV5Power();
System.out.println("(手机)客户端:我需要5v电压充电,现在是---->"+provideV5Power+"v");
}
}
再创建220v的家用电压:
package 适配器模式;
public class V220vPower {
/**
* 提供220V电压
* @return
*/
public int provideV220Power() {
System.out.println("我提供220v的电压");
return 220;
}
}
最后就是适配器的创建:
package 适配器模式;
/**
* 适配器:将220v电压适配成5v
* @author Administrator
*
*/
public class V5PowerAdapter implements V5Power {
private V220vPower v220;
public V5PowerAdapter(V220vPower v220) {
this.v220=v220;
}
@Override
public int provideV5Power() {
// TODO Auto-generated method stub
int power = v220.provideV220Power();
System.out.println("我适配了电压,将"+power+"的电压变成了适合手机充电的电压:5v");
return 5;
}
}
测试类查看下输出
package 适配器模式;
public class test {
public static void main(String[] args)
{
Mobile mobile = new Mobile();
V5Power v5Power = new V5PowerAdapter(new V220vPower()) ;
mobile.inputPower(v5Power);
}
}
我提供220v的电压
我适配了电压220
(手机)客户端:我需要5v电压充电,现在是---->5v
适配器是不是很简单?