EMF总述

<!--[if !supportLists]-->1.   <!--[endif]-->EMF解释

EMF全称Eclipse Model Framework,顾名思义,就是用来建模的。这里我们可以用一些类比的概念来进行理解。从操作系统的角度,我们写了一个程序,但是程序在操作系统中运行时就是一个进程,所以程序和进程就是静态和动态的概念;又如在面向对象编程中,我们写的是类,在系统运行的时候,我们操作的是对象,所以,类和对象就是静态和动态的概念。同样,在使用UML进行建模的时候,我们先提取出类图,用于描述系统的静态组成,再提供对象图,来描述某一特定场景下系统的动态状态。回到EMF上,他提供了一套用于描述系统静态组成,以及与之对应的用于编辑系统动态行为的工具。

 

<!--[if !supportLists]-->2.   <!--[endif]-->EMF组成

EMF.Ecore

EMF.edit

EMF.editor

<!--[if !vml]--> <!--[endif]-->

 

<!--[if !supportLists]-->3.   <!--[endif]-->EMF分述

<!--[if !supportLists]-->a)        <!--[endif]-->EMF.Ecore

<!--[if !supportLists]-->                      i.              <!--[endif]-->作用:他提供了用于描述系统组成的工具。在EMF出现以前,我们可以使用UML图,Java文件,或者其他的格式来描述系统的组成,所谓系统的组成就是说,系统中应该有哪些角色和对象,以及他们之间的组织关系,几个例子,像一个选课系统,我们就应改标识出,系统中最起码需要有学生与课程两个对象,然后他们之间是一个一对多的关系,这就叫做系统的组成。EMF出现以后,他也提供了一套用于描述系统组成的工具,而为了重用已有的资源,他也提供了一套从已有的UML图,Java文件中导出模型的机制。所以,总的来说,EMF.Ecore的作用就是提供了一套模型(用于描述系统)和一套工具(用于导入已有模型)。

 

<!--[if !supportLists]-->b)        <!--[endif]-->EMF.editor

<!--[if !supportLists]-->                      i.              <!--[endif]-->作用:他提供了用于编辑系统动态行为的工具。所谓动态行为,他是跟某一特定场景关联的,还以之前的选课系统为例,选课系统是一个通用的情况,具体到某一次选课,我们可能生成了ABC三个学生,然后每个学生分别选了abc门课,然后AaBbCc之间的描述,就是系统的一次动态行为。EMF.editor就提供了一套根据某一特定模型来编辑和修改某一次行为的机制,包括树形编辑器,属性编辑器,表格编辑器等。

 

<!--[if !supportLists]-->c)        <!--[endif]-->EMF.edit

<!--[if !supportLists]-->                      i.              <!--[endif]-->作用:他提供了在UI和模型之间进行适配的一套机制。由于,我们不可能为某一个特定的模型提供一套单独的editor,所以,EMF采用了MVC的机制,把整个模型切分成三部分,Ecore就是Modeleditor就是Viewedi就是Controller。但是EMFMVC机制比传统的UI编程时所使用的MVC更加纯粹。从模型显示方面,EMFeditor既要显示模型,又要做到模型无关,所以,editor通过edit提供的一套适配器机制,来对模型进行显示。从模型修改方面,由于修改是模型相关的,所以,我们需要把UI中的事件变换成模型相关的操作。从模型通知方面,为了避免让模型与显示紧耦合,我们只能把通知事件先发送到edit,然后由他变换成editor所能感知的事件通知。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值