UML 类图关系及符号表达
UML 类图中有以下几种常见的关系,依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和实现(Realization),下面对这几种关系及其表达方式做一个极简的介绍。
依赖(Dependency)
表示一个类对不在其实例作用域内的另一个类或对象的引用,通常有以下几种情况的依赖:
- 局部变量
- 方法的参数或返回值
- 静态方法的调用
符号:虚线箭头
关联(Association)
表示一个类持有另一个类或对象,是一种 “has-a” 关系,通常表现为:
- 字段
- 属性
符号:实线箭头
聚合(Aggregation)
表示一种 “强” 关联关系。与关联相比,关联中的两个类型是同一层次的,而聚合中的两个类处于不同层次,强调整体和部分。举例:班级-学生。
在聚合关系中,部分可以离开整体而存在,部分的生命周期不受整体约束。如果 A 由 B 聚合而成,则 A 包含 B 的全局对象,但 B 对象可以不在 A 对象创建时创建。
符号:空棱形实线箭头
组合(Composition)
表示一种 “强” 聚合关系。与聚合相比,聚合更多地强调同一类型的聚在一起合成了整体,而组合中的部分往往不是同一类型的。举例:人-头(手、脚)、汽车-轮胎(发动机)。
在组合关系中,整体离不开部分,部分的存活周期小于或等于整体,通常在整体的构造方法中实例化部分。
符号:实棱形实线箭头
泛化(Generalization)
即经常所说的继承,是一种 “is-a” 关系。
符号:实线空三角形
实现(Realization)
即通常所说的接口实现。
符号:虚线空三角形
总结
1、引用两张图来形象地展示各种 UML 类图关系:
2、各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 。
3、最后,推荐大家使用 ProcessOn 在线软件来绘制 UML 图。