在动态模型里模型之所以可以运行,是因为模型可以转化动作,而动作相当于函数和方法,能够被执行。
动作对应的类是org.xmeta.Action。
动作上下文是执行动作的环境,变量和线程状态等都保存在动作上下文中,全局变量、局部变量、参数传递、各种控制模型(while、for、try/catch、if等等)的实现都要用到动作上下文。。
动作上下文对应的Java类是org.xmeta.ActionContext。
模型对象的行为是使用动作实现的,在动态模型里任何模型都可以转化为动作,所以XWorker所使用的模型引擎规定模型名为actions的子节点下的模型是模型行为的定义。
import org.xmeta.Thing; import org.xmeta.Action; import org.xmeta.ActionContext; //模型转化为动作 Action action = thing.getAction(); //执行动作 action.run(new ActionContext()); //执行对象的行为,通过doAction方法执行 thing.doAction("run", new ActionContext());
动作的原理实际上也是动态模型的执行原理。
XWorker的模型引擎是使用Java实现的,模型的类名为JavaAction的模型是由引擎直接解释执行的。
Copyright © 2007-2019 XWorker.org 版权所有 沪ICP备08000575号