|
XWorker的特点主要有:
XWorker的构造性简单可比喻为:道生一、一生二、二生三、三生万物,因为XWorker中最早只有元事物一个事物,而我们现在用编程的各种事物都是通过元事物直接或者间接的一点一点的构造出来的。
XWorker的构造性具体体现在可以在XWorker中使用已有的事物的创建一个新事物,也可以使用这个新事物去创建或修改其他事物。
比如:我们可以先编辑一个Web Control事物,然后就可以拿这个Web Control来编辑Web应用,而编辑Web Control和使用Web Control编辑Web应用的方法在XWorker里是一致的。
构造事物是一个迭代过程,是一个通过已知构建未知的过程,是一个不断丰富事物的过程。
XWorker是实现面向事物的平台,面向事物的核心是元事物,而元事物是一个自描述的事物。
元事物的结构为自身,元事物表示的是事物的构造方法,使用事物的构造方法通过元事物还能够构造出元事物自身,所以使用元事物和事物的构造方法构造出来的事物集合是完备的。
XWorker的完毕性具体体现在使用XWorker中,使用XWorker每创建或修改一个事物,就是修改XWorker自身。
动态性是构造性的体现,由于事物的构造是迭代的,是从一发展到很多的,所以事物总是动态的在增长,因为事物构成了XWorker本身,所以使用XWorker越多,XWorker中的事物就越丰富,从而XWorker的功能就越强大。
比如XWorker的事物管理器IDE就是由XWorker编写的,它是有一些事物构成的,可以在事物管理器IDE中编辑这些事物,从而改变事物管理器IDE本身。在事物管理器中使用鼠标中键双击一个控件可以查看这个控件的事物。
XWorker的动态性还体现在动态编程方面,面向事物和面向对象在某些方面是相通的,比如事物的描述者和类的作用相似,在面向对象编程中我们先是使用代码编写类和类的调用,然后在运行时对象才真正的产生,而在XWorker中事物的描述者(类)和事物都是通过编辑而产生的,甚至它们的顺序也有可能颠倒,在整个过程中事物的描述者(类)和事物都是可以改动的,所以在XWorker中编程是动态的。
XWorker编程的动态性还在于脚本(Java或Groovy)等编译和执行都是动态的,XWorker核心只支持Java代码的编译和执行,但可以通过编写诸如GroovyAction、JDKScriptAction等事物增加其他语言的支持。
XWorker的构造性和动态性有利于组件化编程,是敏捷式的开发,也可以使组件的利用率最大化。
XWorker中的动作(程序脚本)都可以嵌套一个或多个动作上下文,动作上下文类似的面向方面的横切,动作上下文也是普通的事物,它有init、herit、success和exception四个方法,这四个方法分别在动作执行前和执行后执行。
动作上下文能够提高组件的利用率,也能够使编程更加灵活。比如在一个动作上添加动作性能上下文,那么就可以打印这个动作执行的时间,为一个动作添加Hibernate上下文,那么就可以在动作中直接调用数据库的Session,而不用管数据库如何初始化和事务的提交。
每个动作除了有自己的动作上下文外,还有全局的动作上下文,比如XWorker的调试功能就使用了全局动作上下文,这样就能记录每一个动作的执行情况了。
XWorker的编程是比较原始的,所谓的原始性是指有可能你要处理诸如函数调用的变量栈的管理,以及全局变量和本地变量如何存储的问题。
XWorker编程的原始性能够提高编程的灵活性和可能性,比如在XWorker中SWT控件的变量都是统一管理的,所以有可能实现诸如象编写HTML一样编写SWT本地应用,象使用样式单一样管理SWT界面的功能。
XWorker编程的原始性一般只对组件的开发者有关,使用组件开发最终应用的一般不需要关心诸如变量堆栈的管理等事务,比如使用XWorker中的Web组件开发Web应用是不需要关心这些的,但开发Web组件的是有时需要考虑这些的。
统一性是完备性的体现,XWorker是有各种事物构成的,而各种事物是在XWorker中编辑出来的,所以事物-XWorker是统一的。
edit
|