我想知道人们通常如何处理向 EMF 模型添加行为。我有一个模型表示某种类型的物理文件(IDE 的项目文件,但细节并不有趣),并且模型包含一些计算属性(例如将此文件传递给外部工具的结果)。我可以看到两种方法:子类化和编辑生成的模型类。
我对解决这个特定问题(我可以通过多种方式来解决)不太感兴趣,就像学习其他 EMF 用户一般如何处理这个问题一样。
我想知道人们通常如何处理向 EMF 模型添加行为。我有一个模型表示某种类型的物理文件(IDE 的项目文件,但细节并不有趣),并且模型包含一些计算属性(例如将此文件传递给外部工具的结果)。我可以看到两种方法:子类化和编辑生成的模型类。
我对解决这个特定问题(我可以通过多种方式来解决)不太感兴趣,就像学习其他 EMF 用户一般如何处理这个问题一样。
我遇到了同样的问题,我与一些模特和 Ed Merks 进行了交谈。
一般的方法是静态地创建所有可能的类型并在不修改的情况下使用它们。动态模型(即在运行时发生变化的 EMF 模型)不是很常见,因此关于实现它们的最佳方式的知识并不多。
您将面临的一些问题: 加载和保存运行时模型类。再次加载模型时,最好确保模型类至少具有相同的属性。
这通常意味着您必须将 EMF 元模型与模型本身一起保存。
至于子类化与编辑:将 EMF 视为一种类似反射的 API。它实际上只是一个描述 Java 类、创建实例、更改这些实例以及持久性的 API。
因此,如果您需要决定哪种方式更好,请问问自己如果没有 EMF(即使用反射时在纯 Java 中),您将如何解决它。