为了账号安全,请及时绑定邮箱和手机立即绑定

UML类图的六种关系

标签:
Java 架构

UML类图中有六种关系,它们的分别是:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

普通写法

在此之前,先谈谈UML类图的接口、类、方法、变量的普通写法。下图:

image.png

首先是访问修饰符,- + #与空格分别表示私有、公有、继承、默认的访问权限,抽象方法和抽象类用斜体表示,静态属性和方法加上下划线。变量的定义与方法的定义用虚线分离。同理,接口名称和接口中的抽象方法也用斜体表示。

关系
1. 泛化(Generalization)

即我们平时说的继承关系。表示一般与特殊。
【代码表现】extends
【箭头及指向】实线和空心三角。

image.png
泛化

2. 实现(Realization)

实现即接口实现。表示类是接口所有特征和行为的实现。
【代码表现】implements
【箭头及指向】虚线和空心三角。

image.png
实现

3. 关联(Association)

是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。
【代码表现】成员变量
【箭头及指向】双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,实线连接。

注意是箭头而不是三角。
单向关联中,箭头指向的一方为关系维护方。

image.png
双向关联

image.png
单向关联

4. 聚合(Aggregation)

是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
【代码表现】成员变量
【箭头及指向】实线和空心菱形,菱形指向整体。

image.png
聚合

5. 组合(Composition)

是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码表现】成员变量
【箭头及指向】实线和实心菱形,菱形指向整体。

image.png
组合

6. 依赖(Dependency)

【定义】是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

【代码表现】局部变量、方法的参数或者对静态方法的调用
【箭头及指向】带箭头的虚线,指向被使用者

image.png
依赖

总结

各种关系的强弱顺序:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

其中,组合和聚合是关联关系的一种,这三者的代码表现都是类的成员变量。组合和聚合的区别是:

组合不能脱离整体单独存在,而聚合可以。

参考文章

UML类图几种关系的总结

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消