继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

UML类图的六种关系

慕设计6931647
关注TA
已关注
手记 54
粉丝 7189
获赞 185

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类图几种关系的总结

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP