如下图:(<> 表示黑色菱形,表示 UML 中的组合)
+---+ 0..1 * +---+
| A |<>--------| B |
+---+ +---+
我有 A 类和 B 类。从 A 到 B 存在一个包含引用,且多重性未绑定。相反的参考具有多重性 0..1。
我的问题是:这不是相反的多重性错误/不可能吗?!因为在 Ecore 中,包含引用指定 B 只有作为 A 才能存在。因此从 B 到 A 的多重性始终为 1,不是吗?!
0..1 意味着 B 的实例可以有 A 或没有。
更新:我的任务是将以下 UML 图转换为 Ecore
+---+ 0..1 * +---+ * 1 +---+
| A |<>--------| B |--------<>| C |
+---+ +---+ +---+
我不确定如何将 UML 组合映射到 Ecore
- 从 A 到 B 的遏制参考,上限:-1
- B 对 A 的反向引用,下限 0,上限 1
- 从 C 到 B 的遏制参考,上限:-1
- 对面引用 B 到 C,下界 = 上界 = 1
我对吗 ?!