今天我们详细的讲解一下Caringorm框架中的command部分,也是如果通过Command 的delegate部分去实现Service操作(Remoting,Webservice等)。从上一节的讲解我们可以了解到Event事件是通过Frontcontroll映射到Command进行业务逻辑处理。
如果command需要和后台数据库交互的话,command会产生delegate,将远程访问(httpservice,webservice等)实例化,并将处理结果返回给command。
现在我们来分析一下FShop的代码:
1. LoadPhotosCommand.as中需要加载图片访问服务器数据(该实例简化就定义在本地xml中,但原理是一样的),通过onResults_loadPhotos这个方法,将获取的图片数据加载到ModelLocator中,这样View就可以显示所获取的数据了。
2.在PhotoDelegate中,实际上是将远程访问对象实例化而已:
public function PhotoDelegate(responder:IResponder)
{
__service = __locator.getHTTPService("photosIn");
__responder = responder;
}
3. 在service.mxml中
<?xml version="1.0" encoding="utf-8"?> <rds:ServiceLocator xmlns:rds="com.adobe.cairngorm.business.*" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:HTTPService id="photosIn" url="assets/photos.xml"/> </rds:ServiceLocator>
定义了数据的访问方式,通过httpService,直接访问远程对象,这里的url可以写成servlet或者struts的action
通过这几天的学习,相信大家对Caringorm的框架已经了解的很熟悉了,那么在下一次的学习当中,我会做一个实际的例子使用Caringorm完成一个简单的对数据库的增删改查的操作。