該模式是將兩個不相干的接口進行適配,從而在一起工作
代碼示例
比如這裏要定義一個適配器,用於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上展示了。