我们说现实客观世界是一个动态系统,是因为客观世界是由各种事物组成的,并且这些事物一直处于不断变化的状态中,这样客观世界就是动态的。
XWorker也采用了类似的观点,即XWorker是由各种事物组成的,并且这些事物可以随时改变,因此XWorker的功能也是不断变化的,所以它是一个动态系统。
XWorker是使用Java编写的一个计算机软件系统,而计算机只能处理数据,所以我们是用数据来表示各种东西,因此XWorker中的事物就是用来表示各种东西的数据。
XWorker中的事物是结构化的数据,一个事物是由属性和子节点构成的,因此它是像XML或JSON这样的树形结构的数据。
由于任何东西东西在XWorker中都是用事物表示的,所以任何东西都是像XML这样的数据。
比如一个表示人的事物模型。
<Person name="Zhangsan" _descriptors="xworker.example.otandoo.example.Person" age="40" label="Zhangsan">
<Child name="XiaoMing" age="10"></Child>
</Person>
动作是类似于代码和函数这样可以执行的程序,它也可以用事物表示。比如下面是XWorker的一个发布更新的动作。
<Begin name="run" descriptors="xworker.lang.actions.Actions/@ActionGroup">
<actions>
<GroovyAction name="init">
<code><![CDATA[.....]]></code>
</GroovyAction>
<NewFileCopyer name="copyNewFile" descriptors="xworker.io.util.NewFileCopyer" srcPath="var:srcDir"
tagPath="var:targetDir" background="false" excludeRegex=".*xworker\\asserts.*|....."
datePattern="yyyyMMddHHmmss" date="var:date"></NewFileCopyer>
<If condition="targetDirFile.listFiles().length > 0">
<Then name="ChildAction">
<ZipCompress name="zipCompress" descriptors="xworker.java.util.ZipCompress"
sourceFile="var:targetDir" targetZipFile="var:targetZip" includeRootDir="false"></ZipCompress>
<HttpPost descriptors="xworker.httpclient.HttpPost" httpclient="_local.xworker.config.XWorkerHttpClient"
uri="......">
<entity>
<MultipartEntity>
<FileBody name="file" file="var:targetZip"></FileBody>
<StringBody name="userName" text="var:userName"></StringBody>
<StringBody name="password" text="var:password"></StringBody>
<StringBody name="version" text="var:version"></StringBody>
</MultipartEntity>
</entity>
</HttpPost>
<GroovyAction name="finish">
<code><![CDATA[//成功,保存最后版本号
def diffInfo = world.getThing("xworker.tools.DeployDiffInfo");
diffInfo.put("lastVersion", currentDate);
diffInfo.save();]]></code>
</GroovyAction>
</Then>
</If>
</actions>
</Begin>
以下代码是一个SWT窗口的事物代码。
<Shell name="HelloWorld" descriptors="xworker.swt.widgets.Shell" text="Hello World"
RESIZE="true" width="800" height="600" label="HelloWorld">
<FillLayout></FillLayout>
<Browser url="http://www.baidu.com" WEBKIT="true"></Browser>
</Shell>
这段代码可以运行,运行后的窗口截图如下。

作为一个动态系统,XWorker的全部内容几乎都是有事物提供的,因此XWorker本身就是事物的例子,当然还包含WEB编程、人工智能编程等其它例子,可以在XWorker的更多教程和使用中看到。
Copyright © 2007-2014 XWorker.org 版权所有