回答
只要您使用关联,最好避免使用EMF。
我记得,这是可能的......我没有插件了...
看看HERE,部分3.2。创建Ecore图
这不是我所需要的,我的问题是关于EMF中不同类型的关系,它似乎只有3个:简单的关系(EReferences,Composition(containment),inheritances),我正在寻找如何进行聚合。但是,无论如何感谢你;) – TheCyberXP 2012-04-24 11:54:10
我认为,当'EReference.containment = True'时,引用被认为是Composition‖任何父对象在子对象中具有包含引用(EMF元模型中的containment = true)管理生命周期那个孩子“ 否则它将被视为聚合。 – M3HD1 2012-04-24 12:24:59
第一部分是确定的,但你的“其他”部分没有:)它将被认为是一个简单的关系。这就是为什么我要问如何进行汇总 – TheCyberXP 2012-04-24 12:28:21
这是真的,EMF中只有组合关系吗?
的种类。在EMF中定义关联的唯一方法是使用EReference
(实际上,它们中的一对是精确的 - 每个方向一个)。 EReference有一个'Containment'标志。它在生成期间由EMF使用:例如,在生成的EMF编辑器中,containment=true
允许您创建引用类型的子节点。如果不是,你只能参考他们。
但是:更相关的问题是:你是什么意思的聚合与组成? UML中的聚合非常松散,每个人都有自己的解释。
也许你可以说更多关于你想用Aggregation vs Composition来表达的规则吗?
hth。
好吧,我将解释我的问题一种例子。假设我们有3个模型:房间,墙壁,椅子。关系{房间,墙壁}是一种构图关系(墙壁不能在没有房间的情况下“居住”),但关系{房间,椅子}是我们可以单独实例化房间和椅子的集合体,而我没有找到如何在EMF中表达这种关系。在UML中,它由空白/白色菱形表示,但组成由黑暗/完整菱形表示。明白了吗? – TheCyberXP 2012-04-24 11:46:29
确定有帮助。然后两件事。 (1)我真的不认为你需要聚合。你有一个简单的二元关系。 UML中的聚合是一件大事 - 语义非常薄弱,它在实践中不会为直接二进制提供价值。所以这导致点(2):只是使用一个“EReference”,包含设置为{房间,主席}为假。心连心。 – sfinnie 2012-04-24 13:18:41
- 1. 聚集在嵌套聚集场失败
- 2. 指数VS聚集
- 3. 在波导中绘制电场和磁场线
- 4. 集群VS电网VS云
- 5. 弹簧集成 - 聚合分散消息
- 6. 使用MongoDB的聚集到了现场
- 7. 多场方面聚集的做法
- 8. MongoDB的聚集与分组离开现场
- 9. 使用Android中的磁场
- 10. Spring集成聚集错误
- 11. 场的拆分内容分成2场
- 12. 电场积分图
- 13. 磁场统一
- 14. 聚集索引的外键VS主键
- 15. 弹性搜索:聚集,通过场
- 16. 猫鼬群聚集不回场
- 17. 的MgO聚集和分组
- 18. MongoDB:性能优化:聚合管道(一个集合)VS聚集加上附加查询分离集合
- 19. 广场电子商务API集成到客户的网站
- 20. ReSharper与VS集成
- 21. Xeon Phi中的分散/聚集
- 22. [R传播VS聚集在tidyr
- 23. Spring集成聚合器
- 24. 的SensorManager:磁场范围
- 25. 实体vs聚合vs聚合根
- 26. 聚集和分别在R
- 27. LINQ - 分组和聚集
- 28. 有什么区别?:集成电路vs组合电路和时序电路
- 29. 电子签名现场API集成过程
- 30. R聚集在部分列表中
为什么?这个不清楚,请你详细说明 – TheCyberXP 2012-04-25 09:40:00
关联属性应该由目标分类器拥有,并保存为UML2中的一个属性。只要你不能用EMF定义完整的UML关联属性,那么这是无用的。 EMF是面向Java代码的,在Java中,聚合和组合之间没有区别。只有在模型或图形层面上才能看到它。希望这个帮助:-) – 2012-04-25 14:02:47