动态模型编程是一种解释性的编程方法,这个解释规则如下。
XWorker的动态模型引擎是使用Java实现的,所以元动作就是JavaAction。
<?xml version="1.0" encoding="utf-8"?> <JavaAction name="create" descriptors="xworker.lang.actions.JavaAction" outerClassName="xworker.swt.widgets.ShellCreator" methodName="create"> </JavaAction>
JavaAction的主要作用是调用Java的静态方法,如上面的模型代码中调用了类xworker.swt.widgets.ShellCreator的create方法,而ShellCreator的create方法的定义如下。
package xworker.swt.widgets; import org.xmeta.ActionContext; public class ShellCreator{ public static Object create(ActionContext actionContext{ } }
如上面的代码,XWorker的动态模型引擎实现叫做XMeta,它的相关类在org.xmeta包下。JavaAction模型能调用的是public的静态方法,并且参数固定为ActionContext,其中ActionContext是用来保存变量用的。
<?xml version="1.0" encoding="utf-8"?> <Shell name="SWTHelloWorld" descriptors="xworker.swt.widgets.Shell" text="Hello World" RESIZE="true" width="400" height="300"> </Shell>
在上面的模型里并没有定义任何动作行为,而要执行模型需要运行其run方法,所以HelloWorld模型的run方法是定义在它的描述者Shell上的。
如上图是Shell模型的定义,可以看到它定义了一个run方法,这个run方法是使用Java编写的,所以HelloWorld模型最终是通过Java执行的。
Copyright © 2007-2014 XWorker.org 版权所有