基于反射机制的 EMF 模型比较
2010-07-06 00:00:00 来源:WEB开发网EDataType:用来描述一个属性的类型,这个属性必须是简单数据类型,包括基本(primitive type)数据类型如:int,一个 Java 类型如 String,也可以是一个数组。
EFactory:为一个抽象工厂,它包含创建建模对象的方法。
EObject:由图 1 可见,EObject 为所有 EMF 建模对象的基类型 ( 或称超类型 ),在 EMF 框架内类似于 java.lang.Object。为了区别于用户建模中的方法名,EObject 接口中所定义的方法名都以"e"开头。如 eClass() 方法返回一个 EMF 对象的元模型 (EClass)。
EPackage:在 Ecore 中,EPackage 包含关于模型类 (EClass) 和数据类型 (EDataType) 的信息,如何得到 EPackage 的实例和得到模型类的信息在后面将详细介绍。
EReference:用来描述类之间的关联关系,EReference 有名称;一个描述包含关系的布尔标志位(包含与否决定这两个类型之间的关系是聚合(Aggregation )或者组合(Compostition));一个 reference( 目标 ) 类型,用来指定关系的类型,由于关联关系是两个类型之间的关系,所以 EReference 总是指向组合数据类型。
EStructureFeature:是 EReference 和 EAttribute 的共同超类。在理解上可以将其作为字段(Field)。因为 EStructuralFeature 的实现是抽象类,所以得到的 EStructuralFeature 对象一定是 EAttribute 或者 EReference 类型的实例。
EMF 的反射 API
反射的概念是由 Smith 在 1982 年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。EMF 框架也提供了反射机制的接口及实现。EMF 提供的反射机制是一个强大的工具。它使得代码更加灵活,这些代码可以在运行时装配,而不是在编码阶段就将某些连接进行固定。对任何 EMF 对象,都可以使用反射 API 来存取它的数据。
更多精彩
赞助商链接