基本概念

1.什么是动作?

    在动态模型里模型之所以可以运行,是因为模型可以转化动作,而动作相当于函数和方法,能够被执行。

    动作对应的类是org.xmeta.Action

2.动作上下文(也叫变量上下文)

    动作上下文是执行动作的环境,变量和线程状态等都保存在动作上下文中,全局变量、局部变量、参数传递、各种控制模型(while、for、try/catch、if等等)的实现都要用到动作上下文。。

    动作上下文对应的Java类是org.xmeta.ActionContext

3.对象的行为

    模型对象的行为是使用动作实现的,在动态模型里任何模型都可以转化为动作,所以XWorker所使用的模型引擎规定模型名为actions的子节点下的模型是模型行为的定义。

4.执行动作和行为的示意代码

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());

5.动作原理

    动作的原理实际上也是动态模型的执行原理。

  1. 对象是模型,对象的类和行为等也是用模型来表示的。
  2. 执行一个模型是执行模型所表示的对象的run方法。
  3. 对象的run方法也是模型,故运行run方法则回到步骤2。
  4. 以上是一个递归过程,要让递归能够终止,那么必须存在有引擎直接解释执行的模型,而不用执行它的run方法。

    XWorker的模型引擎是使用Java实现的,模型的类名为JavaAction的模型是由引擎直接解释执行的。

   

Copyright ©  2007-2019 XWorker.org  版权所有  沪ICP备08000575号