4

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

4

4 回答 4

25

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

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

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

于 2009-05-01T20:21:06.543 回答
6

在这里找到

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

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

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

于 2009-05-01T20:13:54.017 回答
0

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

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

于 2009-05-01T20:13:15.687 回答