【问题标题】:What is the difference between composition and aggregation? [duplicate]组合和聚合有什么区别? [复制]
【发布时间】:2009-05-01 20:11:14
【问题描述】:

组合和聚合有什么区别? 谁能给我这个OOAD的样本吗?

【问题讨论】:

标签: java ooad


【解决方案1】:

考虑一个学生、学生的大脑和学生就读的学校。

大脑是学生的一部分。如果学生被摧毁,大脑也会被摧毁。这是作曲

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

【讨论】:

    【解决方案2】:

    Found here

    “聚合和组合都是特殊类型的关联。聚合用于表示所有权或整体/部分关系,组合用于表示更强大的所有权形式。通过组合,我们可以得到部分与整体。复合对象对其部分在创建和销毁方面的处置负有唯一责任。

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

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

    【讨论】:

      【解决方案3】:

      您的问题的相关答案在这里:http://ootips.org/uml-hasa.html

      简而言之:组合和聚合都是由部分整体组成的非循环has-a关系。不同之处在于,在组合中,整体负责创建(和删除)其部分

      【讨论】:

        【解决方案4】:
        猜你喜欢
        • 2020-03-18
        • 2021-06-14
        • 2014-10-27
        • 2022-10-25
        • 1970-01-01
        • 2020-01-22
        • 2013-07-07
        • 2020-01-24
        • 2011-08-07
        相关资源
        最近更新 更多