徹底明白Android設計模式—適配器模式

該模式是將兩個不相干的接口進行適配,從而在一起工作

代碼示例

比如這裏要定義一個適配器,用於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上展示了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章