53.scala编程思想笔记——组合
2016-01-02 09:39
155 查看
53.scala编程思想笔记——组合
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50447606
源码下载连接请见第一篇笔记。
继承描述的是 “是一个”关系。
特征表示的是一种能力。
最基础的关系不是继承,也不是特征,而是组合。
例如,这栋房子有两间厨房,如下:
trait Building
trait Kitchen
trait House extends Building {
valkitchen1:Kitchen
valkitchen2:Kitchen
}
优先选择组合而不是继承。
组合会产生更为简单的设计和实现,并不表示应该尽力回避使用继承和混合。
一方面不能继承同一个特征两次,此外组合可以使拥有多项物品(不同种类)变得很容易。在继承特征时,是无法表示要继承多次的。
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50447606
源码下载连接请见第一篇笔记。
继承描述的是 “是一个”关系。
特征表示的是一种能力。
最基础的关系不是继承,也不是特征,而是组合。
例如,这栋房子有两间厨房,如下:
trait Building
trait Kitchen
trait House extends Building {
valkitchen1:Kitchen
valkitchen2:Kitchen
}
优先选择组合而不是继承。
组合会产生更为简单的设计和实现,并不表示应该尽力回避使用继承和混合。
一方面不能继承同一个特征两次,此外组合可以使拥有多项物品(不同种类)变得很容易。在继承特征时,是无法表示要继承多次的。
相关文章推荐
- 52.scala编程思想笔记——多态
- 51.scala编程思想笔记——浅尝反射
- 50.scala编程思想笔记——应用
- 49.scala编程思想笔记——衔接JAVA
- 48.scala编程思想笔记——统一访问方式和setter
- 47.scala编程思想笔记——特征
- 46.scala编程思想笔记——抽象类
- Java并发API:闭锁 CountDownLatch
- 45.scala编程思想笔记——枚举
- 44.scala编程思想笔记——覆盖方法
- 【Java】Java连接sql2008数据库
- matlab图像处理
- 43.scala编程思想笔记——基类初始化
- 42.scala编程思想笔记——继承
- 41.scala编程思想笔记——伴随对象
- 40.scala编程思想笔记——元组
- 39.scala编程思想笔记——自动字符串转换
- 38.scala编程思想笔记——定义操作符
- 好玩的C#
- Java解惑八:很多其它库之谜