一句话定义
作为两个不兼容的接口或对象的中间层桥梁
使用场景
1.需要使用现有的类,但又不符合使用的条件
2.需要一个统一的输出接口,而输入类型不可预知,类似listview
3.创建可以使用的类,应对没有关联的一些类
实现要点
适配器继承或依赖已有的对象,实现想要的目标接口。
情景假设
GTX10系显卡不支持VGA接口,需要一个VGA转HDMI的转换线,即适配器。
实现步骤
1.创建VGA接口
/**
* VGA接口
*
* @author fengzhen
* @version 1.0, 2017/5/23
*/
public interface VGA {
/**
* 需要vga接口
*/
String needVGA();
}
2.创建GTX10系显卡,只能得到HDMI接口
/**
* 10系显卡
*
* @author fengzhen
* @version v1.0, 2017/5/23
*/
public class GTX10 {
/**
* 返回HDMI类型的接口
*/
public String getHDMI(){
return "HDMI";
}
}
3.创建适配器 继承类 同时 实现接口
/**
* HDMI转VGA适配器
*
* @author fengzhen
* @version 1.0, 2017/5/23
*/
public class HdmiToVgaAdapter extends GTX10 implements VGA{
private GTX10 mGTX10;
public HdmiToVgaAdapter(GTX10 mGTX10) {
this.mGTX10 = mGTX10;
}
@Override
public String needVGA() {
return "VGA";
}
}
4.满足显示器需求,如此便将GTX10系转换成了vga的接口
HdmiToVgaAdapter hdmiToVgaAdapter = new HdmiToVgaAdapter(new GTX10());
hdmiToVgaAdapter.needVGA();