在具有声明为瞬态和易失性的属性的 Ecore 模型中(其值是从其他几个字段计算得出的),是否有一种规范的方法来生成此字段更改的通知(即,当瞬态易失性字段中的一个字段取决于更改,检查瞬态字段的值是否受此更改影响并发送通知)?
我目前这样做的方法是在瞬态属性的所有者上注册一个侦听器,该属性对依赖项的更改做出反应并在计算的值发生更改时触发通知,但这是我想要的很多繁琐的手动工作避免。
您将知道 EMF 带有自己的适配器。添加适配器实际上并不是那么乏味的工作,我建议在您的情况下这可能是最好的选择(事实上,生成模型代码将包括这些适配器,请参阅这篇关于每个开发人员应该知道的博客文章关于 EMF)。
如果您想手动添加此类通知功能,您可以简单地将一个附加EContentAdapter
到模型的根元素,它将监听整个元素树中的变化。这样您就可以避免向每个模型类添加适配器。
Lars Vogel有一个简单的教程Adapter
EContentAdapter
。