组合关系
- 组合表示不同对象间的交互关系
- 通过组合,我们可以用简单的对象来构造复杂的对象
- 组合还可以保障对象的互换性,有利于代码复用
分阶段构建
- 使用组合,系统的各个部分可以分别设计,测试和维护
- 要构建高质量软件,就要让每一步尽量简单。一种解决方案就是利用层级结构
- 稳定的复杂系统往往是可分解的
- 稳定的复杂系统往往由为数不多的几个子系统构成,而这些子系统又可以由更小一级的子系统构成
- 稳定要用的系统,往往是由简单可用的系统演化而来的
- 通过组合,我们可以利用别人构建好的组件
组合的种类
- 组合可以分为:Association 和 Aggregation
- Aggregation:人们看到的是整体,而不是各个组成部分。例如汽车
- Association:人们看到的是各个组件。例如电脑,键盘,鼠标等
避免依赖
- 不同领域内的对象不应该混在一起,除非能带来非常大的便利
基数(Cardinality)
- 表示参与的对象的数量以及这种联系是不是必需的
- 如果联系是可选的,那么我们需要检查联系的对象是否为空,并做出相应的处理