适配器模式

Posted colinzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了适配器模式相关的知识,希望对你有一定的参考价值。

模式定义

将一个类的接口,转换成客户期望的另一个接口。适配器模式让原本接口不兼容的类可以合作无间。

类图

示例


/**
 * 鸭子接口
 *
 * @author Colin
 * @create 2018-05-07
 **/
public interface Duck {
    public void quack();
    public void fly();
}

/**
 * 鸡
 *
 * @author Colin
 * @create 2018-05-07
 **/
public interface Chicken {

    public void Gege();
    public void fly();

}
**
 * 适配器
 *
 * @author Colin
 * @create 2018-05-07
 **/
public class ChickenAdapter implements  Duck {

    private Chicken chicken;

    public ChickenAdapter(Chicken chicken){
        this.chicken=chicken;
    }
    @Override
    public void quack() {
        chicken.Gege();
    }

    @Override
    public void fly() {
        chicken.fly();
    }
}
/**
 * 绿鸭子
 *
 * @author Colin
 * @create 2018-05-07
 **/
public class GreenDuck implements Duck {
    @Override
    public void quack() {
        System.out.println("呱呱叫!");
    }

    @Override
    public void fly() {
        System.out.println("飞起来!");
    }
}

/**
 * 母鸡
 *
 * @author Colin
 * @create 2018-05-07
 **/
public class HenChicken implements Chicken {
    @Override
    public void Gege() {
        System.out.println("母鸡咯咯叫!");
    }

    @Override
    public void fly() {
        System.out.println("母鸡会飞!");
    }
}

public class AdapterTest {


    @Test
    public void testAdapter(){

        GreenDuck greenDuck=new GreenDuck();
        HenChicken chicken=new HenChicken();

        Duck duck=new ChickenAdapter(chicken);
        duck.quack();
        duck.fly();
    }
}

总结

  • 当需要使用一个现有的类,接口并不符合你的需求时,就使用适配器模式
  • 适配器改变接口以符合客户的期望

以上是关于适配器模式的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数

如何从片段适配器启动活动

片段中ListView的android自定义适配器

设计模式之单例模式

片段内带有基本适配器的列表视图

片段中gridview的Android文本和图像适配器