知识卡片
属性委托统一了访问逻辑
内容
Kotlin允许用by关键字把属性的get/set逻辑委托给另一个对象:委托对象只需提供getValue(及var属性对应的setValue)函数即可接管属性读写。标准库基于这套机制封装出lazy(首次访问才求值并缓存)、observable(赋值时触发监听)等常见模式,不必每次手写延迟初始化或变更通知的样板代码。个人理解:这本质是把”属性访问”从语言内置的字段读写,抽象成了一个可插拔的接口,和其他语言里把getter/setter单独抽象出来复用是同一类思路。
参考来源
《Kotlin开发快速入门与实战》第5章《Kotlin面向对象》