适配器模式

Posted chenziyue

tags:

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

适配器

使用已有类 但接口与其它代码不兼容时 使用该模式

重用几个子类 但子类缺少一些不能添加到父类中的公共功能时 使用该模式

技术图片

 

 

 对象适配器(使用组合)

// 手机usb接口
public interface UsbPhone {
    String getName();
}

--------
// 电脑usb接口
public class UsbCom {
    public String getName(){
        return "电脑USB";
    }
}
// 对象适配器 使用组合
public class UsbTransition implements UsbPhone{
    private UsbCom usbCom;
    public UsbTransition(UsbCom usbCom){
        this.usbCom = usbCom;
    }
    @Override
    public String getName() {
        String name = usbCom.getName();
        return "手机USB";
    }
}
   public static void main(String[] args) {
        // 需要转换的类
        UsbCom usbCom = new UsbCom();
        // 转换类
        UsbTransition usbTransition = new UsbTransition(usbCom);
        String name = usbTransition.getName();
  }

技术图片

 

 

  类适配器(使用继承)

   

// 类的适配器 使用继承
public class UsbAdpater extends  UsbCom implements UsbPhone{
    @Override
    public String getName() {
        return "手机usb";
    }
}

 

 类适配器的弊端

  新增方法

 

// 电脑USB
public class UsbCom {
    public String getName(){
        return "电脑USB";
    }
    public String playCode(){
        return "敲代码";
    }
}
  public static void main(String[] args) {
        UsbAdpater usbAdpater = new UsbAdpater();
        usbAdpater.playCode();
    }

手机不能敲代码 手机会继承电脑的所有方法 所有不适合

 

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

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

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

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

设计模式之单例模式

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

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