当前位置: 首页 > 面试题库 >

组合和聚合之间有什么区别?[重复]

段渊
2023-03-14
问题内容

这个问题已经在这里有了答案

11年前关闭。

组合和聚合之间有什么区别?有人可以给我这个OOAD的样品吗?


问题答案:

在这里找到

“聚合和组合都是特殊的关联。聚合用于表示所有权或整体/部分关系,而组合用于表示甚至更强的所有权形式。有了组合,我们得到部分与整体的重合寿命。从创建和销毁的角度出发,复合对象对其各个部分的布置负全责。

而且,合计末端的多样性不能超过一;即,它是不共享的。一个对象一次只能是一个合成的一部分。如果复合材料被破坏,则它必须要么破坏其所有部件,要么将它们的责任交给其他物体。可以在没有其他对象会破坏其零件的知识下设计复合对象。

组合可用于对按值聚合建模,在语义上等效于属性。实际上,在早期的UML草案中,组合最初被称为按值聚合,“正常”聚合被认为是按引用聚合。定义稍有变化,但总体思路仍然适用。聚集和组成之间的区别更多是一种设计概念,在分析过程中通常不相关。”
John Moore



 类似资料:
  • 问题内容: 我对重排和重绘之间的区别还不清楚(如果有任何区别) 似乎重排可能正在转移各种DOM元素的位置,其中重画只是呈现一个新对象。例如,在移除元素时将发生回流,而在更改其颜色时将发生重新绘制。 这是真的? 问题答案: 至于定义,从那篇文章: 一个 重绘 更改时的元素皮肤改变明显制成,但不影响其布局发生。 这方面的例子包括 ,,,或。根据Opera的说法,重绘是昂贵的,因为浏览器必须验证DOM树

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • ClassNotFoundException和NoClassDefFoundError之间有什么区别? 谁能举个例子来解释。。

  • 在聚合物入门页面上,我们看到了一个使用聚合物的示例: 您将注意到是由和定义的。

  • %1有编译器错误,而%2是合法的。 为什么变量声明的类型必须与我们传递给对象类型的类型匹配(不允许派生类型)?我使用的数组如下所示,这是完全正确的: 有人能告诉我为什么集合必须声明为条件2吗?谢谢

  • 我一直试图理解command:和command:-在我的docker组合文件中的区别: 我在这里错过了什么?