在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
接口的對象。當我們需要為不同類型的對象創建適配器時,只需傳入相應的對象實例即可。這樣就實現了適配器復用。