通过UML可以直观的描述对象之间的关系。主要包含如下几种:
关联关系:用一条直线表示,描述不同类的对象之间的结构关系。
关联关系表示一个对象了解其他对象,即关联关系描述了某个对象在一段时间内一直“知道”另一个对象的存在。例如:A对象保存了B对象的ID,因此,A对象“知道”B对象存在。为区分相互“知道”和单向“知道”的关系,定义了关联关系的另一个变体,即单向关联关系,如A→B,说明A“知道”B,而B“不知道”A。在用例模型中,单向关联关系用于连接参与者和用例,箭头由参与者之相用例,表示参与者“知道”用例存在。
依赖关系:用带箭头的虚线表示,如A→B(A,依赖于B),描述这样一种关系:一个对象的修改会导致另一个对象的修改。
![](https://img-my.csdn.net/uploads/201301/25/1359109847_4588.jpg)
与关联不同,依赖关系除了“知道”其他对象存在,还会“使用”其他对象的属性或方法。如A对象使用了B对象的属性或方法,则B的修改会导致A的修改,此时A依赖于B。双向依赖是一种不好的结构,应该保持单项依赖,杜绝双向依赖。
聚合关系:用一条带空心菱形箭头的直线表示。用于表示实体对象之间的关系,表达整体有部分构成的语义。
与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在。
组合关系:用一条带实心菱形箭头的直线表示。
表达整体拥有部分的语义。组合关系是一种强依赖的特殊聚合关系,如果整体不存在了了,则部分也将消亡。