Android 如何在运行时更改实现
我需要从客户端代码调用一些类。现在我有一个列表,然后客户机必须检查该列表的实现。使用起来很乱Android 如何在运行时更改实现,android,kotlin,Android,Kotlin,我需要从客户端代码调用一些类。现在我有一个列表,然后客户机必须检查该列表的实现。使用起来很乱 object Adapter { val list = listOf( A(), B() ... ) } 理想情况下,我只在内存中保留一个实现,但有时我需要在实现之间进行更改。让所有类实现一个接口。因为它们都实现了相同的接口,所以您可以将具体实例分配给相同的变量 interface IWorker { fun doWork()
object Adapter {
val list = listOf(
A(),
B()
...
)
}
理想情况下,我只在内存中保留一个实现,但有时我需要在实现之间进行更改。让所有类实现一个接口。因为它们都实现了相同的接口,所以您可以将具体实例分配给相同的变量
interface IWorker {
fun doWork()
}
然后在适配器类中,您可以设置要使用的实现
object Adapter {
var worker: IWorker = Default()
}
默认值表示您的任何类
class Default: IWorker {
override fun doWork() {}
}
worker
需要是一个var
(不是val
),为什么不简单:对象适配器{var-worker:IWorker=Default()}
哪个更像“Kotlin-ish”?你能更改这些类吗?或者它们是来自一些外部API吗?它们不是,但这是个好问题。