第九章:用组合联系对象

组合关系

  • 组合表示不同对象间的交互关系
  • 通过组合,我们可以用简单的对象来构造复杂的对象
  • 组合还可以保障对象的互换性,有利于代码复用

分阶段构建

  • 使用组合,系统的各个部分可以分别设计,测试和维护
  • 要构建高质量软件,就要让每一步尽量简单。一种解决方案就是利用层级结构
  • 稳定的复杂系统往往是可分解的
  • 稳定的复杂系统往往由为数不多的几个子系统构成,而这些子系统又可以由更小一级的子系统构成
  • 稳定要用的系统,往往是由简单可用的系统演化而来的
  • 通过组合,我们可以利用别人构建好的组件

组合的种类

  • 组合可以分为:Association 和 Aggregation
  • Aggregation:人们看到的是整体,而不是各个组成部分。例如汽车
  • Association:人们看到的是各个组件。例如电脑,键盘,鼠标等

避免依赖

  • 不同领域内的对象不应该混在一起,除非能带来非常大的便利

基数(Cardinality)

  • 表示参与的对象的数量以及这种联系是不是必需的
  • 如果联系是可选的,那么我们需要检查联系的对象是否为空,并做出相应的处理