在Kotlin中,適配器模式可以通過創(chuàng)建一個通用的適配器類來實現(xiàn)復(fù)用。這個通用適配器類可以適用于多種類型的對象,只需傳入不同的類型參數(shù)即可。下面是一個簡單的示例:
首先,定義一個接口,用于規(guī)范需要適配的對象:
interface Adaptee {
fun request(): String
}
然后,創(chuàng)建一個通用適配器類,實現(xiàn)Adapter
接口,并持有一個Adaptee
類型的對象:
class GenericAdapter<T : Adaptee>(private val adaptee: T) : Adapter {
override fun request(): String {
return adaptee.request()
}
}
接下來,創(chuàng)建一個Adapter
接口:
interface Adapter {
fun request(): String
}
現(xiàn)在,可以為不同類型的對象創(chuàng)建適配器實例,實現(xiàn)適配器復(fù)用:
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
}
在這個示例中,我們創(chuàng)建了一個通用適配器GenericAdapter
,它可以適用于任何實現(xiàn)了Adaptee
接口的對象。當(dāng)我們需要為不同類型的對象創(chuàng)建適配器時,只需傳入相應(yīng)的對象實例即可。這樣就實現(xiàn)了適配器復(fù)用。