收容和参考之间的ECore有什么区别?

在ECore实体之间创建引用时,可以将引用标记为“包含”。 有人可以用简单的话来解释一下普通参考和遏制之间的区别吗?到目前为止,我发现的定义和解释对我来说并不起作用。     
已邀请:
参考:参考是一个简单的“A know B”关系。单独的引用不会相互影响。 A可以知道B和B可以知道C.因此,如果你有A,你可以通过B转到C.如果删除引用,A,B和C仍然存在,他们就不再相互了解了。 遏制:遏制是“A有B”的关系。通常用于列表,例如“A有多个B”。然后,ECore / EMF可以对此类集合执行原子命令,例如将所有对象从一个包含移动到另一个包含。它还可以强制执行约束,例如最小数量的包含对象或最大数量的包含对象,或确保包含的对象不包含在任何其他包含中。 例: 假设你有一个名为
ShoppingCart
的对象,带有一个名为
Customer
的引用和一个名为
OrderedProducts
的包含。
OrderedProducts
引用了
Product
。 这个型号告诉你什么? 您可以将客户分配给ShoppingCart。如果从ShoppingCart中删除Customer,则Customer对象本身仍然存在(例如,在数据库中) OrderedProduct对象需要ShoppingCart才能存在。如果从ShoppingCart中删除一个,它将不再存在。 每个OrderedProduct都引用数据库中的现有产品。如果从ShoppingCart中删除其中一个OrderedProducts,数据库中的产品仍然存在 - 只是该特定客户的产品订单消失了     
参考:可以像UML中的关联 遏制:是UML的组合关系 这也可以在EMF图中看到,如果将
containment
设置为true,则该线将具有填充侧,显示包含/组合。这就是我所观察到的。     

要回复问题请先登录注册