Kotlin 知识梳理(4)
来源:互联网 发布:淘宝货到付款的衣服 编辑:程序博客网 时间:2024/06/18 12:28
(转载)http://www.jianshu.com/p/5f03cb52a040
2.2 类委托
当我们需要向一个类添加一些行为时,一般有两种做法:
- 继承这个类,在子类中增加方法
这种方法的缺点是:当系统不断演进并且基类的实现被修改或者新方法被添加进去时,你做出的关于类的行为的假设会失效。 - 使用装饰器模式
本质是创建一个新类,实现与原始类一样的接口并将原来的类的实例作为一个字段保存。与原始类拥有同样行为的方法不用修改,只需要直接转发到原始类的实例。这种方法的缺点是:需要相当多的样板代码。
而Kotlin
将委托作为一个语言级别的功能做了头等支持。无论什么时候实现一个接口,你都可以使用by
关键字将接口的实现委托到另一个对象;当需要修改某些方法的行为时,可以重写它们,这样你的方法就会被调用而不是使用生成的方法,可以保留感到满意的委托给内部的实例中的默认实现。
运行结果为:
作者:泽毛
链接:http://www.jianshu.com/p/5f03cb52a040
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
阅读全文
0 0
- Kotlin 知识梳理(4)
- 知识梳理
- 知识梳理
- 知识梳理
- 知识梳理
- 知识梳理
- Android知识体系梳理笔记五:Kotlin学习笔记二:空安全,操作符,Lambad表达式...
- Android知识体系梳理笔记五:Kotlin学习笔记一:类和继承以及Anko(全)的基本使用
- 知识梳理--查询
- plsql知识梳理-连接
- plsql知识梳理-视图
- plsql知识梳理-序列
- plsql知识梳理-约束
- plsql知识梳理-索引
- activemq知识梳理
- HTML知识梳理
- 数据库知识梳理
- MySql数据库 知识梳理
- kotlin 委托
- java基础
- (15)web开发入门二
- Ignite SQL网格快速学习(二)
- Linux 硬链接和软链接
- Kotlin 知识梳理(4)
- 300.27 Timer定时器
- 在Linux上git的安装,基于系统Ubuntu16
- Spark的Shuffle机制(讲得很好哦)
- Qt动态信号与槽2
- json顺序输出 跟数组顺序不一致
- 最少硬币问题
- jQuery.children() 函数详解
- Kotlin-Android世界的一股清流-Lambda表达式