注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Flex 技术博客

醉里挑灯看剑,梦回吹角连营

 
 
 

日志

 
 

Cairngorm框架入门介绍(续)  

2007-10-11 15:17:37|  分类: Cairngorm |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

(上接Cairngorm入门介绍)

  •  Model部分

         在Model中定义了接口ModelLocator,我们只需要实现该接口,并把所有需要办绑定的数据放在这里就可以了。一般我们都采用单例模式(Singleton)来实现,而且根据项目模块进行分类,而不是一股脑儿的把所有数据都扔到这里了事。可以说ModelLocator是系统的数据中心。

  • Business部分

         在Business中定义了接口IServiceLocator,另外的Responder已经在2.1中被mx.rpc.IResponder代替了。我们需要将所有的RPC服务登记在该接口中,采用mxml的形式来单例实现IServiceLocator,如下面的例子所示:

    <cairngorm:ServiceLocator xmlns:mx="http://www.adobe.com/2006/mxml"  

                      xmlns:cairngorm="com.adobe.cairngorm.business.*">

                  <mx:HTTPService id="httpHeartBeatController" url="broker/heartbeat.action"

                      result="event.token.resultHandler( event )"

                      fault="event.token.faultHandler( event )"

                      showBusyCursor="false"

                      useProxy="false"

                      resultFormat="e4x"/>                 

          <!-- Remote Object     -->

          <mx:RemoteObject id="orderManagement" destination="OrderManagementService" showBusyCursor="true" result="event.token.resultHandler( event );" fault="event.token.faultHandler( event );">

          </mx:RemoteObject>

    </cairngorm:ServiceLocator> 

    并且需要在系统中实例化一个ServiceLocator,如下面所示写在Application中:

    <business:Services id="services" />  

    使用方法:

    在某个Delegate中通过下面的方式得到该service的实例,之后就可以进行函数调用了:

    this.service = ServiceLocator.getInstance().getRemoteObject( "orderManagement" );

  •  View 部分
        再来看看View中都有什么。View中有ViewHelper和ViewLocator。
    ViewLocator是一个单例类,用于统一管理和获取ViewHelper。类似于ServiceLocator,和FrontController,在这里可以注册多个ViewHelper,并通过关键字直接找到需要的ViewHelper实例。
    ViewHelper是具体用来操作某个视图的类,它是通过其成员变量view来引用到具体的视图,当它被实例化的时候就会在ViewLocator中注册一个ViewHelper
    如:
          <viewhelper:ListViewHelper id="listViewHelper"/>
    将实例化一个ViewHelper,并在ViewLocator中注册一个名为listViewHelper的ViewHelper实例,通过该id可以得到其实例的引用,如:
    var listViewHelper:ViewHelper = (ViewHelper )ViewLocator.getInstance().getViewHelper("listViewHelper")

  • VO 部分
     最后提一下vo,其实IValueObject和ValueObject没有任何实际作用,唯一的就是提高vo类的可读性,表示该类是一个ValueObject,可能是为将来设计用的。我们不需要实现任何接口函数。

  评论这张
 
阅读(1010)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017