Flex的MVC框架结构-Cairngorm
发布时间:2020-12-15 04:55:56 所属栏目:百科 来源:网络整理
导读:原文地址:http://zengxiangshun.iteye.com/blog/1098239 Cairngorm是Flex的一个MVC框架结构? ? 使用Cairngorm的第一步是建立框架结构的骨架,包括了三个对象:? Model Locater;? Service Locator;? Front Controller;? Model Locator:承载了组件之间的
原文地址:http://zengxiangshun.iteye.com/blog/1098239 Cairngorm是Flex的一个MVC框架结构? 使用Cairngorm的第一步是建立框架结构的骨架,包括了三个对象:? Model Locater;? Service Locator;? Front Controller;? Model Locator:承载了组件之间的所有的传递的信息和数据,这是一个Bindable(可绑定的)对象。? Service Locator:定义了与数据源(Httpservice,Webservice,Remoteobject)之间通讯的界面。? Front Controller:建立播送事件(Dispatch event)和命令层(command)之间的对应关系(mapping)。?? 看一下相关的代码:? BuddyAppModelLocator.as:? Xml代码?????
在Model Locator代码中,定义了三个public的变量,buddyList:用来存放由数据库获取的密友列表;loginUser:定义一个User类型对象;viewStackSelectedIndex:定义viewStack指向的视窗。? 几乎所有的服务层返回的信息都需要在Model Locator中有一个相应的对象。? BuddyServiceLocator.mxml:? Xml代码????? 1.??<EM><EM><?xml?version=”1.0″?encoding=”utf-8″?>?????
上述代码定义了程序将要调用的RemoteObject ,RemoteObject 所调用的Destination需要和remote_config.xml文件中的Destination相一致。在此,Destination的值为“flexmvcRO”。? BuddyListController.as:? 1.??<EM><EM><STRONG>package?com.ny.flex.cairngorm.control?????? 如何能将这些乱七八糟的东西结合在一起?其Magic的地方是在主页(Main application)上,代码如下:? BuddList_Main_Cairngorm.mxml:? 1.??<EM><EM><STRONG><?xml?version=”2.??<mx:Application?xmlns:mx=”http://www.adobe.com/2006/mxml“??xmlns:service=”com.ny.flex.cairngorm.service.*“??xmlns:controller=”com.ny.flex.cairngorm.control.*”?xmlns:views=”com.ny.flex.cairngorm.views.*”?layout=”absolute“??width=”100%”?height=”100%“>????? 现在用户可以建立视图组件,并从这些组件中播送事件:? LoginView.mxml:? 1.??<EM><EM><STRONG><EM>??????<![CDATA[????? LoginEvent.as:? 1.??<EM><EM><STRONG><EM>package?com.ny.flex.cairngorm.event?????? 每一个事件都 要对应于一个命令:? LoginCommand.as:? package?com.ny.flex.cairngorm.command?????? 然后,在Front Controller(前端控制器)中build对应关系:? addCommand(LoginEvent.LOGIN_EVENT,LoginCommand);? 命令层需要完成商务逻辑,用户需要在执行方法中加入商务逻辑代码:? 1.??<EM><EM><STRONG>??????????????????var?lgoinService?:LoginDelegate?=???????? Delegate(代表)用来通过服务层(Service Locator)调用数据源:? LoginDelegate.as:? package?com.ny.flex.cairngorm.service?????? 返回的结果将回复到命令层(LoginCommand.as)的结果方法中,在此方法中Model被更新,然后数据被绑定到结果视图上:? 1.??<EM><EM><STRONG>????????????2.??????????????{?????? 其它的视图工作流程同上,整个密友列表项目的结构如下图所示:? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |