当设计一个类图时,我很难理解这些概念,据我所知,组合是一种“拥有”的关系,但聚合是什么?我不知道。那么何时应该在类图中使用组合关系?何时应该使用聚合关系?能否给出一个例子?
当设计一个类图时,我很难理解这些概念,据我所知,组合是一种“拥有”的关系,但聚合是什么?我不知道。那么何时应该在类图中使用组合关系?何时应该使用聚合关系?能否给出一个例子?
个人而言,我不使用聚合。它的语义太弱了,没有什么用处。它引起的问题比解决的问题还要多。只有一个地方它具有明确定义和潜在有用的属性,可以将其与简单的二元关联区分开来(见脚注)。
组合可能很有用,因为它定义了重要的不可变性和生命周期管理属性(参见上面的第一个链接)。多年来,我一直很幸福地生活着,从未需要使用聚合。
希望对你有所帮助。
注脚。聚合可以应用于需要建模递归树关系的情况,例如零件以递归方式分解为子部件。聚合意味着不能有循环关系,即一个零件不能直接或间接地成为其自身的子部件。但是,大多数阅读该模型的人不太可能知道这一点。-因此,您需要添加注释。这意味着最好坚持使用二元关联并避免混淆使用聚合。