委托
委托 是Kotlin的一个重要功能,说的这么高大上 实际就是一个代理模式。
在未来会出专们讲设计模式的 我先简单说一下代理模式
把某些功能 交由别人处理 就是代理模式
在Kotlin里 属性委托就是把 getValue 和 setValue 交由别的类进行处理。
object SpringProxy {
inline operator fun <reified T> getValue(ref: Any?, property: KProperty<*>): T {
return SpringApi.getApplicationContext().getBean(T::class.java)
}
}
used
private val service: IBitzherService by SpringProxy
这样就可以把这个属性的功能转化为 获取SpringBoot的Bean 😀
当然 例子中只写了 getValue 所以可以委托给 val 类型的变量
如果你要委托 var 类型的变量 还需要定义一个 setValue
参与讨论
(Participate in the discussion)
参与讨论