在Kotlin中,适配器模式可以通过创建一个通用的适配器类来实现复用。这个通用适配器类可以适用于多种类型的对象,只需传入不同的类型参数即可。下面是一个简单的示例:
首先,定义一个接口,用于规范需要适配的对象:
interface Adaptee {
fun request(): String
}
然后,创建一个通用适配器类,实现Adapter
接口,并持有一个Adaptee
类型的对象:
class GenericAdapter<T : Adaptee>(private val adaptee: T) : Adapter {
override fun request(): String {
return adaptee.request()
}
}
接下来,创建一个Adapter
接口:
interface Adapter {
fun request(): String
}
现在,可以为不同类型的对象创建适配器实例,实现适配器复用:
class ConcreteAdapteeA : Adaptee {
override fun request(): String {
return "ConcreteAdapteeA request"
}
}
class ConcreteAdapteeB : Adaptee {
override fun request(): String {
return "ConcreteAdapteeB request"
}
}
fun main() {
val adapteeA = ConcreteAdapteeA()
val adapteeB = ConcreteAdapteeB()
val adapterA = GenericAdapter(adapteeA)
val adapterB = GenericAdapter(adapteeB)
println(adapterA.request()) // 输出: ConcreteAdapteeA request
println(adapterB.request()) // 输出: ConcreteAdapteeB request
}
在这个示例中,我们创建了一个通用适配器GenericAdapter
,它可以适用于任何实现了Adaptee
接口的对象。当我们需要为不同类型的对象创建适配器时,只需传入相应的对象实例即可。这样就实现了适配器复用。