53.scala编程思想笔记——组合

70 阅读1分钟

53.scala编程思想笔记——组合

欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…
源码下载连接请见第一篇笔记。\

继承描述的是 “是一个”关系。

特征表示的是一种能力。

         最基础的关系不是继承,也不是特征,而是组合。

         例如,这栋房子有两间厨房,如下:

trait Building

trait Kitchen

 

trait House extends Building {

  valkitchen1:Kitchen

  valkitchen2:Kitchen

}

优先选择组合而不是继承。

         组合会产生更为简单的设计和实现,并不表示应该尽力回避使用继承和混合。

         一方面不能继承同一个特征两次,此外组合可以使拥有多项物品(不同种类)变得很容易。在继承特征时,是无法表示要继承多次的。