适配器模式

  • 以充电器为实例: 手机充电器一般都是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);
01-23 23:41
查看更多