仅关联和聚合之间的区别以及何时使用它们

Posted

技术标签:

【中文标题】仅关联和聚合之间的区别以及何时使用它们【英文标题】:Difference between only Association and Aggregation and when to use them 【发布时间】:2018-10-15 00:36:43 【问题描述】:

我知道关于这个问题有很多文章和很多答案,但我真的不明白。我阅读了很多答案,但我没有完全理解。我知道什么是关联、聚合、组合。我的问题很简单,仅聚合和关联之间有什么区别以及何时使用它们。我不是在谈论构图。 例如 course 和 student 是两个班级。现在他们之间是什么关系。是关联还是聚合?

【问题讨论】:

difference between association and aggregation的可能重复 我已经阅读了那篇文章。请告诉我学生和课程之间的关系是什么。聚合还是关联?? 它是协会。 感谢 Thomas Kilian 的回答。 【参考方案1】:

“聚合”的意思是把东西加在一起。在 UML 类建模的上下文中,它意味着一个类是另一个类的一部分。要明确(听起来您已经知道)组合是一种聚合形式——组合只是意味着正在组合的类不能存在于组合类之外(也称为“强聚合”) ),而聚合意味着组合的可以存在于组合之外(也称为“弱聚合”)。例如,一辆汽车可能会聚合四个***,但这些***在从车上移开后仍然存在(弱形式),而思想不能存在于大脑之外(强形式)。

“关联”意味着两件事以某种方式关联。在 UML 类建模的上下文中,它的含义仅此而已。

鉴于此,“课程”和“学生”之间的关系显然是一种关联,因为两者都不会聚合另一个。当然,这是假设您和我的课程和学生的意思相同。

【讨论】:

以上是关于仅关联和聚合之间的区别以及何时使用它们的主要内容,如果未能解决你的问题,请参考以下文章

java 聚合和组合的区别?

「软件设计」UML中关联,聚合和组合区别

依赖关联聚合和组合之间区别

java--依赖关联聚合和组合之间区别的理解

java--依赖关联聚合和组合之间区别的理解

SQL将两个聚合的结果集关联