最近我发现了一个Kotlin的代理模式 觉得很有意思,接下里我们一起来学习学习
我们在学校java中会有接口 然后通过实现去实现一些方法来使用,那么在Kotlin中我们也有
1、我们首先定义一个接口
interface Base{
fun print()
}
不难看出我们定义了一个Base的接口 中有一个print的一个方法
2、然后我们通过一个带参的类去实现它
class BaseImpl(val x:Int):Base{
override fun print() {
println(x)
}
}
我们定义了一个BaseImpl的类 并带有x的参数 去实现Base接口
会自动重写接口里的print()方法 这个时候我们把他打印 也就是说如果我们传入什么参数就会通过
接口的方法打印出来
3、by的使用
class Derived(b:Base):Base by b
我们再定义一个类 是接口的参数 并实现这个接口 用by关键字
在这里我们要明白by是可以去实现接口里的所有公共方法 最后by后边我们把
参数类型为Base接口的b 写到后边
4、最后我们看一看打印结果
val b = BaseImpl(10)
Derived(b).print()
通过BaseImpl方法传入参数10 并通过我们可以实现接口所有的公共方法的Derived去
调用接口离得打印方法 最后输出 10