一、前言
适配器模式就是将两个不兼容的类融合在一起。通过转换使他们可以兼容的工作。Android代码中最常见的适配器就是Adapter了。ListView、GridView、RecyclerView都使用Adapter,Adapter的作用都一样,把高度定制化的item view和ListView分开。item view通过一个Adapter和ListView联系到一起。解耦而不失高度可定制。
二、适配器模式定义
将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作
三、例子
3.1、我们举一个出水口出水量的例子。出水量有大有小,于是先定义两个接口
public interface BigOutlet {
public void bigOutlet();
}
public interface SmallOutlet {
public void smallOutlet();
}
3.2、然后有一个出水口water tap。出水量大。
public class BigWaterTap implements BigOutlet {
private static final String TAG = WaterTap.class.getSimpleName();
@Override
public void bigOutlet() {
Log.d(TAG,"bigOutlet");
}
}
3.3、定义适配器
public class ClassWaterTapAdapter extends BigWaterTap implements SmallOutlet {
private static final String TAG = ClassWaterTapAdapter.class.getSimpleName();
@Override
public void smallOutlet() {
Log.d(TAG,"smallOutlet");
}
}
调用
ClassWaterTapAdapter classWaterTapAdapter = new ClassWaterTapAdapter();
classWaterTapAdapter.bigOutlet();
classWaterTapAdapter.smallOutlet();
五、总结
适配器模式就是将原本不兼容的接口融合在一起,以便更好的协同合作。当然设计模式不是一成不变的,litview的adapter就是很好的一个变化,让UI更加高度可定制化而不失自身实现。
优点:
1、把接口和类结合,通过适配器可以让接口定义的功能更好的复用。
2、扩展性好,不光可调用自己开发的功能,还自然的扩展了接口定义的其它功能。
缺点:
不易滥用,如果你的代码有n多个适配器,你想想那场面,调用十分凌乱