【答案解析】在面向对象分析过程中,用概念模型来详细描述系统的问题域。类图用于描述系统的结构化设计,即用来表示概念模型,它最基本的元素是类或接口,表达了类、接口以及它们之间的静态结构和关系。表6-23给出了类图的六种关系。
表6-23 类图的六种关系 | 序号 | 关系 | 说明 | 箭头方向 | 关键字 |
| 1 | 泛化(Generalization) | 表示类与类、接口与接口之间的继承关系 | 由子类指向父类 | extends |
| 2 | 实例(Realization) | 用于指定两个实体之间的一个合同 | 由实现接口的类指向被实现的接口 | implements |
| 3 | 关联(Association) | 表示类与类之间的连接,即一个类保存对另一个类实例的引用,并在需要的时候调用这个实例的方法 | 单向箭头指向遍历或查询的方向;而双向箭头是可选的 | |
| 4 | 聚合(Aggregation) | 是关联的一种形式,代表两个类之间的整体/局部关系 | | |
| 5 | 合成(Composition) | 是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责 | | |
| 6 | 依赖(Dependency) | 也是类与类之间的连接,并且依赖总是单向的,是类间最弱的一种关系 | | |
另外提醒一点:聚合暗示着整体在概念上处于比局部更高的一个级别,在实例图中不存在回路,即只能是一种单向关系,而关联暗示两个类在概念上位于相同的级别。在Java中,关联使用实例变量来实现,聚合也是使用实例变量来实现的。关联和聚合的区别纯粹是概念上的,在Java语法上没有刻意的区分。