【发布时间】:2011-04-17 03:36:36
【问题描述】:
在 ECore 实体之间创建引用时,可以将引用标记为“包含”。 有人可以用简单的话解释一下普通参考和遏制之间有什么区别吗?到目前为止我发现的定义和解释对我没有用。
【问题讨论】:
标签: eclipse reference entity-relationship containment eclipse-emf-ecore
在 ECore 实体之间创建引用时,可以将引用标记为“包含”。 有人可以用简单的话解释一下普通参考和遏制之间有什么区别吗?到目前为止我发现的定义和解释对我没有用。
【问题讨论】:
标签: eclipse reference entity-relationship containment eclipse-emf-ecore
参考:参考是一个简单的“A 知道 B” 关系。单独的引用不会相互影响。 A 可以知道 B,B 可以知道 C。因此,如果您有 A,则可以通过 B 转到 C。如果删除引用,A、B 和 C 仍然存在,只是它们不再相互认识.
遏制:遏制是一种“A 有B” 的关系。通常用于列表,例如“A 有多个 B”。然后,ECore/EMF 可以对此类集合执行原子命令,例如将所有对象从一个容器移动到另一个容器。它还可以强制执行约束,例如包含对象的最小数量或包含对象的最大数量,或者确保包含的对象不包含在任何其他容器中。
示例:
假设您有一个名为 ShoppingCart 的对象,其引用名为 Customer 和一个名为 OrderedProducts 的容器。 OrderedProducts 引用了 Product。
这个模型告诉你什么?
【讨论】:
参考:可以像 UML 中的关联
Containment:是UML的组合关系
这也可以在 EMF 图中看到,如果您将 containment 设置为 true,则该线将有一个填充侧,显示包含/组成。这是我观察到的。
【讨论】: