我们说现实客观世界是一个动态系统,是因为客观世界是由各种事物组成的,并且这些事物一直处于不断变化的状态中,这样客观世界就是动态的。
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 版权所有