该模式是将两个不相干的接口进行适配,从而在一起工作
代码示例
比如这里要定义一个适配器,用于hdmi接口转vga接口,生活中比较常用是吧,直接上代码
/**
* 定义HDMI接口
*/
public interface HDMI {
void hdmiwork();
}
/**
* 定义VGA接口
*/
public interface VGA {
void vgawork();
}
/**
* 定义VGA转HDMI接口
* 在vga的接口工作处调用hdmi工作方法,完成适配转换
*/
public class vgaToHDMI implements VGA {
private HDMI hdmi;
public vgaToHDMI(HDMI hdmi) {
this.hdmi = hdmi;
}
@Override
public void vgawork() {
//vga接口工作直接执行hdmi接口的工作
hdmi.hdmiwork();
}
}
上述是接口之间的转化,有些适配更加简单,比如利用继承的特性
上代码
/**
* 定义一个电脑类
* 这个电脑有hdmi接口,没有vga接口
*/
public class Computer {
public void hdmiwork() {
/*--------hdmi工作-----*/
}
}
/**
* 定义一个vga转hdmi接口的适配器
* 这样电脑就有
*/
public class vgaToHDMI2Computer extends Computer implements VGA {
@Override
public void vgawork() {
//vga接口工作直接执行hdmi接口的工作
hdmiwork();
}
}
/**
* 电脑也同时拥有vga和hdmi接口
*/
public class RealClient {
public void main(String[] args) {
vgaToHDMI2Computer computer = new vgaToHDMI2Computer();
computer.vgawork();
computer.hdmiwork();
}
}
在Android中的应用
很常见的,大家都知道,recycleview的adapter。
recycleview怎么显示数据?需要把数据源 适配 到具体的界面(或者说view),这就需要adapter进行适配,一个adapter继承RecyclerView.Adapter,重写onCreateViewHolder,getItemCount等方法,然后通过setadapter方法就让数据源 适配到 每个view上展示了。
网友评论