用动态 EMF 构建元模型

78 篇文章 0 订阅
59 篇文章 0 订阅
通过本文可以了解如何使用 Dynamic Eclipse Modeling Framework (EMF) 在不生成 Java 实现类的情况下根据需要构建动态的基于 Ecore 的模型。本文将介绍 API,并说明如何序列化并装载动态 Ecore 模型及其实例。

Eclipse Modeling Framework (EMF) 描述了数据模型并且允许使用各种类型的数据模型工件(例如 XML Schema、Rational Rose® 模型、Ecore 模型或 Java 注释)轻松生成代码。在生成代码的过程中,EMF 生成器将创建模型代码,包括数据模型的类型安全 (type-safe) 接口和实现类。但是,在某些情况下,这些类型安全的接口和实现类不是应用程序所必需的。相反,需要可以在应用程序组件之间共享或者由应用程序组件进一步处理的数据对象。

在这样的情况下,Dynamic EMF 就派得上用场了,因为它允许应用程序开发人员通过编程的方式在运行时建立一个内存 (in-memory) 内核模型,动态创建它的实例,并且使用 EMF 反射 API 访问模型实例元素。

为什么使用 Dynamic EMF?

Dynamic EMF 的主要价值在于它允许用短短几行代码在运行时构建基于 Ecore 的模型,然后为实现各种目的创建和访问此动态模型的实例。用这种方法构建内核模型有助于避免在不需要时生成接口和实现类。

在下列情况下(包括但不限于),这种创建模型和模型实例的方法尤为有用:

  • 不需要类型安全接口或实现类 —— 只需要在应用程序组件之间共享的简单数据对象。在这种情况下,使用 EMF 代码生成器生成模型代码将增加应用程序的系统开销,因为它不得不对生成的整组接口/类进行不必要地维护和部署。使用 Dynamic EMF,可以通过编程的方式动态创建和实例化包含动态类的内核模型。随后可以使用这些动态类的实例共享数据或者供应用程序组件进一步处理。
  • 仅在运行时感知数据模型 —— 在这个场景中,由于在开发时不知道数据模型,因此通过 EMF 代码生成器创建静态模型不是很好的选择。在这样的情况下,在运行时构建并实例化的动态内核模型将能更好地满足应用程序的要求。  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值