Android适配器模式

88 阅读1分钟

一、介绍

适配器模式主要解决两个类(接口)不兼容的问题。

把源类(接口)转换成目标类(接口)。

二、应用场景

目前接触到最多的场景是自己的框架有统一的接口回调,在 使用某些已有组件的方法时,该组件接收的接口是另外的。

此时需要使用适配器,把我的接口转换成组件的接口。

适配器.png

三、例子

3.1原接口和目标接口

/**
 * 目前框架传递过来的抽象
 * 可以是接口,也可以是抽象类
 */
interface Source {
  fun action1(): Int
  fun action2(): Int
}

/**
 * 目标组件的接口
 */
interface Target {
  fun handle1()
  fun handle2()
}


3.2适配器

/**
 * 将source转换成target
 * 这里是持有source,也可以采用继承source的方式
 */
class Adapter(private val source: Source) : Target {
  override fun handle1() {
    source.action1() + source.action2()
  }

  override fun handle2() {
    source.action2()
  }
}

3.3测试代码

//传入souce,也可以正常调用接收target的moduleAFun
fun test(source: Source) {
  moduleAFun(Adapter(source))
}

fun moduleAFun(target: Target) {
  target.handle1()
}