当前位置: 首页 > 知识库问答 >
问题:

关联和聚合的区别

瞿宏儒
2023-03-14

我理解聚合和组合之间的区别,但我在联想方面有点挣扎。我目前的理解是,当“它们相互使用”时,类之间存在关联,例如,在方法调用期间将一个对象传递给另一个对象。另请参阅:

http://www.codeproject.com/Articles/330447/Understanding-Association-Aggregation-and-Composit

这两个对象都是独立存在的,和聚合不同,任何对象都不是另一个对象的容器类。这是否意味着两个对象都必须具有其他对象的副本(例如1:m关系),或者关联“存储”的方式。任何反馈都将非常感谢。

共有3个答案

袁鸿畅
2023-03-14

关联描述了一个或多个类的实例之间的关系。用UML参考手册的话说,“关联是将系统结合在一起的粘合剂。”

聚合是一种关联形式,其中存在“整体部分”关系。你可能会说,如果一架类飞机有一个类发动机,那么这就形成了一个“整体”关系。

莫乐
2023-03-14

聚合是一种关联关系,其中关联可以被视为包含类“拥有”包含类,并且该关系的生命周期没有定义。

关联是一种“Has-A”关系。

示例:-

  public class Person  
  {  
   private final Name name;  
   private Address currentAddress;  

   //...  
 } 

在这种情况下,这个人有一个名字和一个地址,所以在人和名字,人和地址之间有一个关联。

赵健柏
2023-03-14

来自UML上层结构2.4.1:

关联声明关联类型的实例之间可以存在链接。链接是一个元组,关联的每个endpoint都有一个值,其中每个值都是endpoint类型的实例。(UML上层结构,第37页)

没有更多,没有更少。而且非常模糊。因此,这也很难理解。我所定义的(在我所教的课程中)是从依赖关系到复合关系的层次结构,其中:

  1. AB的依赖关系意味着A使用B,但不是间接的(比如通过接收它的实例并将它们转发给其他对象)
  2. AB的关联意味着A直接使用B(例如通过调用方法)
  3. AB的聚合意味着BA(语义上)的一部分,但B/code>可以共享,如果A+被删除,B-不会被删除。注意,这并没有说明“is part”是如何实现的
  4. AB的组合类似于聚合,其中B不能共享,如果A被删除,其所有聚合(B/code>s)也会被删除

 类似资料:
  • 我开始研究 OOAD,我很难找到一个 代码示例来说明如何以编程方式实现、和。(到处都有几篇文章,但它们与 C# 或 Java 有关)。我确实找到了一两个例子,但它们都与我的导师的指示相冲突,我很困惑。 我的理解是,在: < li >关联:Foo有一个指向Bar对象的指针作为数据成员 < li >聚合:Foo有一个指向Bar对象的指针,Bar的数据被深度复制到该指针中。 < li >组成:Foo有一

  • 本文向大家介绍Java中关联与聚合之间的区别,包括了Java中关联与聚合之间的区别的使用技巧和注意事项,需要的朋友参考一下 协会 就对象而言,关联是指两个相关对象之间的“具有”关系。例如,一个雇员有一个通讯地址。 聚合 就对象而言,聚合是指两个相关对象之间具有“ +”关系。例如,一个部门有多名员工。它指的是在父类中具有子对象的集合。例如: 序号 键 协会 聚合 1 定义 关联是指彼此使用的两个类之

  • 因此,我对UML图中的关联、聚合和组合有一些疑问。以下是一些场景: > 产品评审对产品评审的评级组成。这意味着对于每一个产品评审等级必须有产品评审?如果产品评审不存在,评审评级就没有意义。 客户NRIC协助推车和订货。我们不能使用聚合,因为如果客户不存在,购物车和订单也不存在。 有人能帮我检查一下我的关系是否正确吗?因为我对聚合和关联有点困惑,所以用关联来链接所有的表是好的吗。我不知道什么时候该用

  • 我知道关于这个问题有很多文章和答案,但我真的不明白。我读了许多答案,但我不能完全理解它。我知道什么是联想,聚合,组合。我的问题很简单,只有聚合和关联的区别是什么,什么时候使用它们。我说的不是作文。例如课程和学生是两个类。现在他们之间是哪种关系。是关联还是聚合?

  • 问题内容: 我试图理解这些术语的含义。我举了一些例子,例如: 汇总:Facebook 有一个 用户 组成:facebook 中的 每个用户 都有一个 会话。 协会:人们 使用 浏览器 但是我对 具有 和 使用我的 示例感到困惑。为什么不能是用户 使用 Facebook帐户或Facebook 使用 会话来认证用户? 就OOP而言,这是错误的吗?我在哪里想念这个概念? 问题答案: 该 使用 关系意味着

  • 我试图确认我对关联、聚合的代码外观的理解 聚合:哈斯-a。它具有另一种类型的现有对象 组成:由另一个对象组成 协会:我对此有两种看法。 > 当一个类与另一个类相关联时。因此,上述两个都是关联的示例。 关联是一种较弱的聚合形式,其中类不保留对其接收的对象的引用。 我的理解正确吗?我在这里和这里阅读了相互矛盾的文章,所以我真的不确定该遵循哪一个。我的理解似乎符合第一个环节。我觉得第二个环节是错误的,或