package weituo
/*
委托模式是软件模式设计中的一项基本技巧,在委托模式中,
有两个对象参与处理同一个请求,接受请求的对象将请求委托
给另一个对象来处理
Kotlin直接支持委托模式,更加又要,通过关键字by实现
*/
//-------------类委托----------
/*
类的委托即一个类中定义的方法实际是调用另一个类的对象的方法来实现的
以下实例中派生类Derived集成了接口Base所有方法,并且
委托一个传入的Base类的对象来执行这些方法
*/
//创建接口
interface Base{
fun print()
}
//实现此接口的被委托的类
class BaseImpl(val x:Int):Base{
override fun print(){print(x)}
}
//通过关键字by建立委托泪
class Derived(b:Base):Base by b
fun main(args: Array<String>) {
val b=BaseImpl(10)
Derived(b).print()
}