|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊
GEF的计划没有对模子部分做任何限定,也就是说,我们能够恣意机关本人的模子,独一必要包管的就是模子具有某种动静机制,以便在产生变更时可以关照GEF(经由过程EditPart)。在之前的几个例子里,我们都是使用java.beans包中的PropertyChangeSupport和PropertyChangeListener来完成动静机制的,这里将先容一下怎样让GEF使用EMF机关的模型.
EMF利用本人界说的Ecore作为元模子,在这个元模子里界说了EPackage、EClassifier、EFeature等等观点,我们要界说的模子都是利用这些观点来界说的。同时由于ecore中的一切观点都能够用自己的观点轮回界说,以是ecore又是本人的元模子,也就是元元模子。关于ecore的具体观点,请参考EMF网站上的有关材料。
使用EMF为我们天生模子代码能够有多种体例,比方经由过程XMLSchema、带有正文的Java接口、Rose的mdl文件和.ecore文件等,EMF的代码天生器必要一个扩大名为.genmodel的文件供应信息,这个文件能够经由过程下面说的几种体例天生,我保举利用Omondo公司的EclipseUML插件来机关.ecore文件,该插件的收费版本能够从这里下载。(大概必要利用外洋代办署理才干会见omondo网站)
示例模子
为了勤俭篇幅和工夫,我就不具体形貌机关EMF项目标步骤了,这里次要把利用EMF与非EMF模子的区分做一个申明。是例子中利用的模子,个中Dimension和Point是两个内部java范例,因为EMF其实不懂得它们,以是界说为datatype范例。
利用两个Plugins
为了让模子与编纂器更好的分别,可让EMF模子独自位于一个Plugin中(名为SubjectModel),而让编纂器Plugin(SubjectEditor)依附于它。如许做的另外一个优点是,当修正模子后,假如你乐意,能够很简单的删除之前天生的代码,然后全体从头天生。
EditPart中的修正
在之前我们的EditPart是完成java.beans.PropertyChangeListener接口的,当模子改用EMF完成后,EditPart应改成完成org.eclipse.emf.common.notify.Adapter接口,由于EMF的每一个模子对象都是Notifier,它保护了一个Adapter列表,能够把Adapter作为监听器到场到模子的这个列表中。
完成Adapter接口时必要完成getTarget()和setTarget()办法,target代表收回动静的那个模子对象。我的完成体例是在EditPart里保护一个Notifier范例的target变量,这两个方法分离前往和设置该变量便可。
还要完成isAdapterForType()办法,该办法前往一个布尔值,暗示这个Adapter是不是应响应指定范例的动静,我的完成一概为"returntype.equals(getModel().getClass());"。
<p>
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net, |
|