出处:http://blog.youkuaiyun.com/lmj623565791/article/details/25833393
定义
适配器模式:将一个类的接口转成客户期望的另一个接口,适配器让原本接口不兼容的类可以相互合作.这个定义就是说,适配器的功能就是把一个接口转成另一个接口,
这张图就很好的解释了适配器的作用
接着我们以手机充电为例子,手机充电器一般都是5v左右,家用交流电压都是220v,所以手机充电需要一个适配器.
首先一部手机:Mobile.java
public class Mobile {
/**
* 充电
*/
public void inputPower(V5Power power){
int provideV5Power = power.provideV5power();
System.out.println("手机(客户端) : 我需要5v充电压,现在是 :" + provideV5Power + "V" );
}
}
可以看出,手机依赖一个提供5v电压的接口:
interface V5Power{
public int provideV5Poewr();
}
然后我们拥有的是220v家用交流电压
class V220Power{
public int provide220Power(){
System.out.println("我提供220v电压");
return 220;
}
}
下面我们需要一个适配器,完成220v转5v的作用
class V5PowerAdapter implements V5Power{
/*
组合的方式
*/
private V220Power v220Power;
public V5PowerAdapter(V220Power v220Power){
this.v220Power = v220Power;
}
@Override
public int provideV5power() {
int power = v220Power.provide220Power();
//power经过各种操作--->5
System.out.println("适配器:我俏俏适配了电压");
return 5;
}
}
测试一下
class Test{
public static void main(String[] args) {
Phone phone = new Phone();
V5Power v5Power = new Adapter适配器(new V220Power());
phone.inputPower(v5Power);
}
}
我提供220v电压
适配器:我俏俏适配了电压
手机(客户端) : 我需要5v充电压,现在是 :5V
可以看出,我们使用一个适配器完成了把220v转化了5v然后提供给手机使用,且使用了组合,原有的手机以及220V电压类都不需要变化