inheritance - 我在这个 UML 类图中找不到错误

标签 inheritance uml composition class-diagram

UMLclassdiagramm

这个 UML 图只有一个错误,但我不确定它是什么。
我的猜测是 B 不能成为 A 的一部分,因为它是 C 的父类(super class)。

有人有解决办法吗?

最佳答案

如果 C 是 B 的特化,它也继承它的关联。这意味着 C 的任何实例除了是 D 实例的组件之外,还是 A 实例的组件(因为 1..1 的多重性):这与需要独占所有权的 UML 组合相矛盾.

例如,您可以通过删除继承、将 roleA 旁边的重数更改为 0..1,或者在 A 一侧使用聚合而不是组合来获得有效的图表。

关于inheritance - 我在这个 UML 类图中找不到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66216098/

相关文章:

uml - 使用 UML 建模的过程编程

multithreading - 在事件图中建模线程间通信

haskell - 具体的例子表明单子(monad)在组合下不是封闭的(有证明)?

c# - C# 不支持多重继承,那么我怎样才能让它工作呢?

java - 组合和聚合关系 UML 存在问题

c# - 继承自网络客户端类

java - 使用策略模式避免向下转型

uml - 如何在 UML 中表示位文件

c++ - 派生类模板中的条件覆盖

c# - Client Generated 不向第三方提供有关已知类型的信息