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

了解合成和聚合

颛孙哲
2023-03-14

如何识别代码中的组合和聚合?特别是在为现有代码绘制类图时?

我知道组成是“HAS-a”关系,聚合是“PART OF”关系。我知道,在组合子类中,实例将随类一起销毁,而在聚合中则不会。

下面是一个 C/CLI 代码

报警

ref class Alarm
{
   public:
       Notification ^n;
       Alarm();
};

报警.cpp

Alarm::Alarm()
{
     n = gcnew Notification ();
}

据我所知,警报和通知之间的联系是组合,因为没有警报就没有通知我说的对吗?如果我是对的,我怎样才能使这段代码在两个类之间具有聚合关系?请问那里的代码示例?

请帮忙。

共有1个答案

严亮
2023-03-14

我认为聚合是指聚合对象以某种方式直接公开(并且用户应该访问它),而组合将完全是内部的,并且独立于用户代码所看到的内容。

这将使你的例子成为一个集合

 类似资料:
  • 问题内容: 我想知道如何在python中以 UML术语 实现组合和聚合。 如果我了解: 聚合: class B: pass class A(object): def init(self): self.B = B 组成: 在其他语言中,我将其实现为指向B的指针。我猜这是python中的指针。 这样对吗? 问题答案: 如果我正确理解,聚合与组合是关于对象对其成员的职责(例如,如果删除实例,是否还要删除

  • 在我的用例中,最简单的集成组件安排是什么: 接收来自多个来源和多种格式的消息(所有消息都是JSON序列化对象)。 将消息存储在缓冲区中最多10秒(聚合) 通过不同的类属性getter(例如class1.someId(),class2.otherId(),...) 释放所有分组的消息并转换为新的聚合消息。 到目前为止(第1点和第2点),我正在使用聚合器,但不知道3)处的问题是否有现成的解决方案或者我

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

  • 我正在通过下面的链接来找出组合和聚合之间的区别。 https://www . geeks forgeeks . org/association-composition-aggregation-Java/ 我能够理解,组合意味着一种关系,其中子项不能独立于父项而存在,而聚合意味着子项可以独立于父项存在的关系。但是无法理解我如何以编程方式区分它.下面是链接中给出的聚合和组合示例。在这两种情况下,类在结

  • 目前,我正在与spring integration合作开发新的应用程序,并启动了poc,以了解如何处理故障案例。在我的应用程序中,spring integration将接收来自IBM mq的消息,并根据消息类型验证头信息和到不同队列的路由。传入的消息可能是批量消息,所以我使用了spring integration的拆分器和聚合器,并且对技术工作流程有很好的进展和控制。目前我面临的问题很少,我们有I

  • 问题内容: 我很难理解UML中的组合和聚合之间的区别。有人可以给我一个很好的比较和对比吗?我也很想学习识别代码之间的区别和/或看一个简短的软件/代码示例。 编辑:我问的部分原因是因为我们在工作中正在进行反向文档活动。我们已经编写了代码,但是我们需要返回并为代码创建类图。我们只想正确捕获关联。 问题答案: 聚集与构成之间的区别取决于上下文。 以另一个答案中提到的汽车示例为例-是的,确实汽车尾气可以“