我找不到这个 UML Class 图中的错误
I cant find the fault in this UML Class diagram
这张 UML 图只有一个错误,但我不确定是什么错误。
我的猜测是 B
不能成为 A
的一部分,因为它是 C
.
的超类
有人有解决办法吗?
如果C是B的特化,它也继承了它的关联。这意味着 C 的任何实例除了是 D 的实例的组件之外,还是 A 的实例的组件(因为 1..1 的多重性):这与需要独占所有权的 UML 组合相矛盾.
例如,您可以通过删除继承、将 roleA 旁边的多重性更改为 0..1 或在 A 侧使用聚合而不是组合来获得有效的图表。
一个元素在一个构图中只能起到“部分”的作用。
C
继承了 A
, 和 继承了 D
两种成分都是强制性的(多重性 = 1),因此不能存在有效的 C
这张 UML 图只有一个错误,但我不确定是什么错误。
我的猜测是 B
不能成为 A
的一部分,因为它是 C
.
有人有解决办法吗?
如果C是B的特化,它也继承了它的关联。这意味着 C 的任何实例除了是 D 的实例的组件之外,还是 A 的实例的组件(因为 1..1 的多重性):这与需要独占所有权的 UML 组合相矛盾.
例如,您可以通过删除继承、将 roleA 旁边的多重性更改为 0..1 或在 A 侧使用聚合而不是组合来获得有效的图表。
一个元素在一个构图中只能起到“部分”的作用。
C
继承了 A
, 和 继承了 D
两种成分都是强制性的(多重性 = 1),因此不能存在有效的 C