适配器模式
- 以充电器为实例: 手机充电器一般都是5V左右吧,咱天朝的家用交流电压220V,所以手机充电需要一个适配器(降压器)
- 一部手机: [Mobile.java]
/**
* 手机
*/
public class Mobile {
// 这里传入的是 v5接口,实现了这个接口的类也可以传入
public void inputPower(V5Power v5Power) {
int provideV5Power = v5Power.provideV5Power();
Log.e("---", "手机(客户端): 我需要的是5V电压充电,现在是" + provideV5Power + "V");
}
}
- 手机依赖一个提供5V电压的接口: [V5Power.java]
/** - 可以看出,手机依赖一个提供5V电压的接口:
- 提供5v电压的接口
*/
public interface V5Power {
public int provideV5Power();
}
```
- 我们拥有的是220V家用交流电: [V220Power.java]
```
import android.util.Log;
/**
- 我们拥有的家用电是220v
*/
public class V220Power {
public int provideV220Power() {
Log.e("---", "现有类: 我们提供的是220v的家用电");
return 220;
}
}
```
- 适配器,完成220V转5V的作用:[V5PowerAdapter.java]
```import android.util.Log;
/**
- Created by jingbin on 2016/10/30.
- 将200v家用电转换为5v手机用电的适配器
*/
public class V5PowerAdapter implements V5Power {
private int v220power;
public V5PowerAdapter(V220Power v220Power) {
v220power = v220Power.provideV220Power();
}
@Override
public int provideV5Power() {
Log.e("---", "适配器: 经过复杂的操作,将" + v220power + "v电压转为5v");
return 5;
}
}
```
最后测试:给手机冲个电:
Mobile mobile = new Mobile(); V5Power v5Power = new V5PowerAdapter(new V200Power()); mobile.inputPower(v5Power);