多年来,我研究了很多使用代码生成器和MDD的方法。我一直觉得缺少一些东西:在运行时对模型进行修补和更改。
打补丁:如果你有一个代码生成器,你所有的类看起来应该是一样的。现在,您有了一个例外。到目前为止,所有的代码生成器都需要我修改模板或模板引擎才能使其工作。
如果我可以对代码生成步骤的结果应用补丁来修复异常,那不是更好吗?
发布于 2010-12-29 02:23:19
好吧,这取决于你如何构建你的模型。事实上,这取决于你使用的是什么代码生成器,它的方法,以及它让你做什么。
创建规则(模型)的异常或多或少违背了MDD的本质,除非应用的建模方法允许您将异常添加为建模实体。
我认为ABSE是唯一一种接受“自定义代码”作为一级实体的建模方法,就像文本或整数一样。如果您创建了一个包含"CustomCode“参数的模板,则可以在以后仅在必要时添加异常代码,而不会违反模型规则。这可以用来添加或替换代码。你只需要在你的模板中指定它。
AtomWeaver是ABSE建模方法的免费实现。
发布于 2010-12-28 19:17:25
MDD不起作用,因为它是基于域的视图,而不是整个域。我的意思是,MDD通常接受来自UML图的XMI条目。问题是,这个图只是领域的一个视图,因此你有很多选择,而现实世界并不复杂,特别是在部署阶段。
唯一一家在我的项目中为我提供真正价值的公司是Omondo with EclipseUML。EclipseUML不会尝试进行MDD,而是在图级别创建与代码同步的统一建模语言。部署是使用在代码中的java注释中添加的构造型进行的。因此,我可以建模,如果我添加部署构造型,那么我的应用程序可以立即部署/如果我手动更改代码,那么我的模型将被重构,所有视图都将更新。如果我想添加一个文档,那么我只需要在元模型中添加注释。当我点击每个元素时,这些注释都是实时可用的。不再需要打印文档,因为实时导航,动态视图创建等。
我的EclipseUML模型总是最新的,我可以立即部署它,因为Java注解在模型、元模型、图和代码之间是实时同步的。非常酷:-) :-)
https://stackoverflow.com/questions/4471173
复制相似问题