组合和聚合有什么区别? 谁能给我一个这个OOAD的样本?
答案 0 :(得分:24)
考虑学生,学生的大脑以及学生所在的学校。
大脑是学生的一部分。如果学生被摧毁,大脑也是如此。这是组合。
学生有学校。学生在学校的破坏中幸存下来,反之亦然。这是聚合。
答案 1 :(得分:6)
“聚合和组合都是特殊类型的关联。聚合用于表示所有权或整体/部分关系,而组合用于表示更强大的所有权形式。通过组合,我们得到一致的生命周期整体而言,复合对象对其部分在创造和破坏方面的处置负有全部责任。
此外,聚合端的多重性不得超过1;即,它是非共享的。对象可以一次只是一个复合的一部分。如果复合材料被销毁,它必须要么销毁它的所有部分,要么将它们交给其他一些对象。可以设计复合对象,使其知道没有其他对象会破坏其部件。
组合可用于建模按值聚合,其在语义上等同于属性。实际上,组合最初在早期的UML草案中称为按值聚合,“正常”聚合被认为是按引用聚合。定义略有改变,但一般的想法仍然适用。聚合和组合之间的区别更多的是设计概念,在分析过程中通常不相关。“ 约翰摩尔
答案 2 :(得分:0)
您的问题的相关答案:http://ootips.org/uml-hasa.html
简而言之:组合和聚合都是非循环的 - 由部分和整体组成的关系。区别在于,使用合成,整个负责创建(和删除)其部分。
答案 3 :(得分:0)