适配器模式
1.类适配器模式
kotlin
interface Target {
fun request1( )
fun request2( )
}
open class Adaptee {
fun request1( ) {
println("Adaptee : request1")
}
}
class AdapterClass : Adaptee() , Target{
/ **
*由于源类Adaptee没有方法request2()
*因此适配器需要补充上这个方法
*/
override fun request2() {
println("Adapte rClass: request2")
}
fun main() {
//类适配器模式
val adapterClass = AdapterClass( )
adapterClass.apply { this: AdapterClass
request1( )
request2( )
}
}
2.对象适配器
class AadapterObj(private var adaptee: Adaptee): Target{
override fun request1() {
adaptee. request1()
}
override fun request2() {
println("AdapterObj: request2()")
}
}
fun main() {
//对象配器模式
val adaptee = Adaptee( )
val adapterObj = Adapter0bj (adaptee )
adapterObj.apply {
request1( )
request2( )
}
}