我想为以下情况建模:
示例:
邮件位置
消息移动
这里的问题是我不能两次将消息位置链接到消息移动。您能提供一种模拟此问题的方法吗?
答案 0 :(得分:2)
您的建模缺少一个“层”来表示您的“消息类型” /“消息实例”结构。
我认为您需要做的是这样的:
MessageType
的约束的BaseType
类(应该将IMO重命名为MessageDataType
之类的东西)MessageInstance
,其中包含对自身的约束和对MessageType
的引用。然后,您的最终用户必须首先创建一个MessageType
实例,称为“ position”,再创建一个实例,称为“ motion”。然后创建三个MessageInstance
实例,其中两个指向MessageType
“运动”,另一个包含前两个MessageInstance
实例。
我还建议您认真考虑如何命名概念,因为您的一个EClass的Ecore实例与您正在有效地建模类型/实例结构这一事实之间可能存在混淆。