表示一棵树,其中根只有一个这种特定类型的孩子

问题描述

我想对一棵树建模,在这种情况下,类 Node 由自身的多个实例组成。

现在如何指示诸如“树的根可以包含任意数量的节点,但只能具有这种特定类型节点的一个实例”之类的约束(特殊节点本身可以​​包含任何内容

通过下面的图a,我们在两个组合之间存在冲突,我将能够向根添加任意数量specialElement,因为它们是treeNodes。>

我如何表示这个约束?

enter image description here

解决方法

您当前的模型有一个缺陷:rootspecialElement 都继承了他们社会化的带有 TreeNode 的组合。因此,您在 rootspecialElement 之间表示的组合被理解为附加组合。

三种简单的方法:

有关更多想法,您还可以查看 UML 中的 this question about covariant associations

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...