package weituo
/*
委托模式是軟件模式設(shè)計(jì)中的一項(xiàng)基本技巧,在委托模式中,
有兩個(gè)對(duì)象參與處理同一個(gè)請(qǐng)求,接受請(qǐng)求的對(duì)象將請(qǐng)求委托
給另一個(gè)對(duì)象來處理
Kotlin直接支持委托模式,更加又要,通過關(guān)鍵字by實(shí)現(xiàn)
*/
//-------------類委托----------
/*
類的委托即一個(gè)類中定義的方法實(shí)際是調(diào)用另一個(gè)類的對(duì)象的方法來實(shí)現(xiàn)的
以下實(shí)例中派生類Derived集成了接口Base所有方法,并且
委托一個(gè)傳入的Base類的對(duì)象來執(zhí)行這些方法
*/
//創(chuàng)建接口
interface Base{
fun print()
}
//實(shí)現(xiàn)此接口的被委托的類
class BaseImpl(val x:Int):Base{
override fun print(){print(x)}
}
//通過關(guān)鍵字by建立委托淚
class Derived(b:Base):Base by b
fun main(args: Array<String>) {
val b=BaseImpl(10)
Derived(b).print()
}