彻底明白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上展示了。

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