一文搞懂 UML 中 依赖 /关联 /聚合 /组合 四种关系

一文搞懂 UML 中 依赖 /关联 /聚合 /组合 四种关系UML Unified Modeling Language 统一建模语言 是一种重要的设计工具 它用于描述软件系统的结构和行为 在 UML 中 有四种常见的关系 依赖 关联 聚合和组合 刚接触 UML 的同学肯定会有这种疑惑 他们之间有关联与区

大家好,欢迎来到IT知识分享网。

UML(Unified Modeling Language,统一建模语言)是一种重要的设计工具。它用于描述软件系统的结构和行为。在 UML 中,有四种常见的关系:依赖、关联、聚合和组合。刚接触UML的同学肯定会有这种疑惑:他们之间有关联与区别(此处停顿20秒供大家思考)。是不是有一种 “只可意会不可言传”的无力感?(真男人[我想静静] )

总的来说,类与类之间由弱到强的关系是:

没关系 > 依赖 > 关联 > 聚合 > 组合

一、依赖(dependency)

简单的理解,就是 类A 使用到了另个一个类B,而这种使用关系是临时的、偶然的、 脆弱的,但是类B会影响到类A;比如你要打车上班,你与被叫到的车之前的关系就是依赖;表现在代码里,就是 类B 作为参数 在类A的某个方法中使用,UML中用带虚线的箭头表示。

一文搞懂 UML 中 依赖 /关联 /聚合 /组合 四种关系

依赖关系

二、关联(association)

关联关系 体现的是 两个类之间在语义级别上的一种强依赖关系,比如我和我的同学这种关系比依赖更强,更稳定,一般是长期性的,双方的关系一般是平等的,关联可以是单向的,也可以是多向的;表现在代码里,就是 类B以类属性的形式出现在类A中,或者类A引用了全局变量类B。

一文搞懂 UML 中 依赖 /关联 /聚合 /组合 四种关系

关联关系

依赖于关联的区别:

依赖是一种弱关联,只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(比如不影响类的初始化),就可以把这种关系看成依赖,它是一种偶然的关系,;关联是一种强依赖关系,例如老师与学生。

三、聚合(Aggregation)

聚合是一种特殊的关联关系,具有 has-a的语义,它体现的是 整体与部分的关系,此时整体与部分之间是可以分离的,他们具有独立的生命周期,例如公司与员工的关系;表现在代码里,与关联关系相同,只能从语义级别来区分。

一文搞懂 UML 中 依赖 /关联 /聚合 /组合 四种关系

聚合关系

四、组合(Composition)

组合也是一种特殊的关联关系,具有 contains-a 的语义,它体现的关联关系比聚合更强,也被称为 强聚合 ;它体现整体与部分不可分割的关系,整体与部分具有相同的生命周期,比如你与你的大脑;表现在代码里,与关联关系一致,只能从语义级别来区分。

一文搞懂 UML 中 依赖 /关联 /聚合 /组合 四种关系

聚合与组合的区别:

聚合与组合的差别在于是否可分享!聚合关系中的部分可以与其类分享,例如公司与员工,一位员工可以在多个公司兼职;但是脑袋不能与他人分享。

五、小结

依赖关系是最松散的关系,它只表示类之间的使用关系。关联关系表示更强的结构关系,通常具有多重性约束。聚合关系表示整体与部分的关系,但部分可以独立存在。组合关系表示最强的关系,部分依赖于整体的存在。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/109635.html

(0)
上一篇 2026-02-05 16:10
下一篇 2026-02-05 16:21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信