UML关系可以是组合和聚合吗?

UML关系可以是组合和聚合吗?,uml,aggregation,composition,Uml,Aggregation,Composition,我有一种情况,a类有一个B,没有B就不能存在,但B可以完全独立于a而存在 从A的角度看,这是一种组合关系,但从B的角度看,这是一种聚合关系 我该怎么办呢?如果A是由B组成的,那么它与类端上的合成端相关联。组合和聚合是关联端的类型。一边是合成,另一边是聚合是可能的 你可以通过回答问题来识别作文。。A班由B班组成吗?如果是的话,那就是A级作文。。。计算机是由内存、CPU等组成的吗?所有的计算机部件都是由计算机组成的 聚合示例:特定椅子放置在房间中。它是聚合,因为房间不是由椅子组成的(房间是由墙、窗等

我有一种情况,a类有一个B,没有B就不能存在,但B可以完全独立于a而存在

从A的角度看,这是一种组合关系,但从B的角度看,这是一种聚合关系


我该怎么办呢?

如果A是由B组成的,那么它与类端上的合成端相关联。组合和聚合是关联端的类型。一边是合成,另一边是聚合是可能的

你可以通过回答问题来识别作文。。A班由B班组成吗?如果是的话,那就是A级作文。。。计算机是由内存、CPU等组成的吗?所有的计算机部件都是由计算机组成的


聚合示例:特定椅子放置在房间中。它是聚合,因为房间不是由椅子组成的(房间是由墙、窗等组成的)。但椅子可以和放在房间里的家具组合在一起

在常见用法中,关联不是组合和聚合,而是取决于应用程序。出租车/轮胎关系将由出租车附近的黑色填充菱形组成。轮胎可以存在于独立于出租车的零件部门中,但出租车在没有4个轮胎的情况下无法调度。零件部门可以在没有轮胎的情况下存在,因此可以是聚合。

您的抽象示例是聚合或合成,其中零件是可分离的(从某种意义上说,它们不依赖于聚合)。你没有对你的B部分的排他性发表任何声明。如果它们不能在两个或多个A之间共享,那么A和B之间的关联就是一个组合

请注意,认为组合定义为组合存在依赖于组件的聚合是一个普遍的错误。UML规范指出,这通常是(但不一定是)组合的情况。更确切地说,定义成分的是,成分是不与其他复合材料共享的专有零件


另请参见一个相关的SO问题。

您能否提供一个例子,说明“有可能在一边有合成,在另一边有聚合”的说法?我很难相信这一点,因为部分和整体的关系通常是不可改变的。我说过这是可能的。我的意思是UML允许创建这样的构造。如果UML允许一些东西,这并不意味着它实际上是有意义的。你认为这有意义吗?如果是,请提供一个例子。