我知道,有人就这个案例问过同样的问题,但我仍然不明白,我需要一个具体的答案。谢谢你:D
既然冈努斯没有正确解释构图的含义,我就只好这么做了。
正如 Gangnus 所解释的,聚合是一种特殊形式协会具有预期含义部分-整体关系,但没有精确的语义(UML 规范说:“共享聚合的精确语义因应用程序领域和建模者而异”)。例如,我们可以对类之间的聚合进行建模Car
and Engine
以及班级之间Course
and Lecture
因为发动机是汽车的一部分,而讲座是课程的一部分。
A 作品(在 UML 规范中也称为“复合聚合”)是聚合的一种特殊形式,其中组件实例一次最多是一个聚合实例的一部分(即,它不能在多个聚合之间共享)。这意味着之间的聚合Car
and Engine
是一个组合(因为引擎不能同时在两辆车之间共享),而两者之间的聚合Course
and Lecture
不一定是组合,因为一个讲座可以在两门课程之间共享(例如,数据库管理课程和软件工程课程可以共享有关 UML 的讲座)。这意味着聚合端的组合关联端的重数是1
or 0..1
,虽然它也可能是*
在非复合聚合的情况下。
除此之外主要特征的组合物(具有独家零件),组合物也可能带有生命周期依赖聚合与其组件之间的关系意味着当删除聚合时,其所有部分都会随之删除。然而,这仅适用于某些合成情况,不适用于其他情况,因此它不是一个定义特征。 UML 规范规定:“在删除复合实例之前,可以从复合实例中删除某个部件,因此不会将其作为复合实例的一部分删除。”在我们的例子中Car
-Engine
显然,在汽车被毁坏之前,可以将发动机从汽车上拆下,在这种情况下,发动机不会被毁坏,可以重新使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)