UML类图
类之间的关系:
- 依赖(使用)Dependency
- 关联Association
- 泛化(继承)Generalization
- 实现Realization
- 关联Association
- 聚合Aggregation
- 组合Composite
各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
依赖
类之间什么时候存在依赖关系:
- 类中用到了对方
- 类的成员变量
- 方法的返回类型
- 方法接收的参数
- 方法中使用到的变量
【箭头及指向】:带箭头的虚线,指向被使用者
泛化
其实就是继承关系。是依赖的特例
【箭头指向】:带三角箭头的实线,箭头指向父类
实现
是一种类与接口的关系, 表示类是接口所有特征和行为的实现。是依赖的特例
【箭头指向】:带三角箭头的虚线,箭头指向接口
关联
是一种拥有的关系, 它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子
关联可以是双向的,也可以是单向的。可以是一对一、一对多、多对多
双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
聚合
是整体与部分的关系, 且部分可以离开整体而单独存在。
如电脑与显示器、键盘等部件之间的关系
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体
组合
整体与部分的关系, 但部分不能离开整体而单独存在。
手和手指的关系。手指不能脱离手单独存在
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
【代码体现】:成员变量,级联删除
【箭头及指向】:带实心菱形的实线,菱形指向整体