Daily Archive: 2017-06-10

Kotlin Reference: Delegated Properties

  对于一些通用的属性,比起每次都在需要的时候进行手动实现,更好的方法是实现一次并把它放进库里,此类属性如: 延迟(Lazy)属性:仅在第一次访问时进行计算, 可观察(Observable)属性:属性发生变动时通知监听者, 在映射(Map)中存储属性,而不是把属性存储到单独的字段。   Kotlin 提供了委托属性(Delegated Property)来满足此种(及其他)场景: [code la…
Read more

Kotlin Reference: Delegation

  实践证明,委托模式(Delegation Pattern)是实现继承的一种有效的替代方式,Kotlin 原生支持委托模式,不需要任何样板代码。下面的代码中,Derived 类实现了接口 Base,并将其所有的公有方法委托给了一个特定的对象: [code lang=”kotlin”]interface Base { fun print() } class BaseImpl…
Read more

Kotlin Reference: Object Expressions and Declarations

  有时候我们想对一个类进行些许修改,而又不想显式地声明一个新的子类。Java 使用匿名内部类(Anonymous Inner Class)的方式应对这种场景,Kotlin 使用对象表达式(Object Expression)和对象声明(Object Declaration)进一步拓展了这个概念。 Object expressions   要创建继承了某个(或多个)其他类型的匿名内部类,可以使用如…
Read more