代码之家  ›  专栏  ›  技术社区  ›  ariso

组合和聚合之间的区别是什么?[副本]

  •  4
  • ariso  · 技术社区  · 17 年前

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

    4 回复  |  直到 17 年前
        1
  •  25
  •   chaos    17 年前

    考虑一个学生,学生的大脑,以及学生所就读的学校。

    大脑 是 .

    有一个 学校学生在学校的毁灭中幸存下来,反之亦然。这是 聚集

        2
  •  6
  •   Ethan Heilman    13 年前

    Found here

    “聚合和合成都是特殊类型的关联。聚合用于表示所有权或整体/部分关系,合成用于表示更强大的所有权形式。通过合成,我们可以获得部分与整体的一致生存期。复合对象对处置全权负责从创造和毁灭的角度看它的部分。

    此外,聚合端的多重性不得超过1;i、 例如,它是非共享的。一个对象一次只能是一个组合的一部分。如果复合材料被破坏,它必须要么破坏其所有部分,要么将责任交给其他物体。在设计复合对象时,可以知道没有其他对象会破坏其部件。

    组合可用于按值聚合建模,值聚合在语义上等同于属性。事实上,在早期的UML草案中,组合最初被称为按值聚合,普通聚合被认为是按引用聚合。定义略有变化,但总体思路仍然适用。聚合和合成之间的区别更多地是一个设计概念,在分析过程中通常不相关。” 约翰·摩尔

        3
  •  0
  •   pts    17 年前

    以下是对您问题的相关回答: http://ootips.org/uml-hasa.html

    简而言之:组合和聚合都是非循环的has-a关系,由a组成 和 整体 . 不同之处在于,在构图方面 整体 s