云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          在筆記一中,忘記介紹一下Iteration::two和Cairngorm的背景了。
          Iteration::two是一家致力于RIA開發(fā)的公司。 詳情請看:http://www.iterationtwo.com/index.html

          Macromedia Acquires iteration::two in creation of Macromedia Consulting Europe.

          Macromedia acquires iteration::two, an industry-leading software consultancy,  to create a European Rich Internet Application consulting organisation based in Edinburgh , Scotland.
          Cairngorm是Iteration::two的開源項目之一。下載和更新地址是http://www.iterationtwo.com/open_source_cairngorm.html


          好,現(xiàn)在繼續(xù)開始我的學(xué)習(xí)筆記:
          1. 在Control中有Command.as定義了Command接口,筆記一中FrontController中addCommand的調(diào)用添加的Command都必須實現(xiàn)此接口。Command接口只定義一個唯一的需要實現(xiàn)的方法execute(); 這是一個典型的命令模式, 所有后續(xù)的命令都實現(xiàn)此接口, 對外統(tǒng)一提供一個單點入口execute(), 其他的人都可以進行調(diào)用,但不需要了解命令具體的實現(xiàn)方式.

          2. 在Model中定義了ModelLocator接口,ModalLocator是所有數(shù)據(jù)綁定的接口,也就是說應(yīng)用中所有需要進行綁定的數(shù)據(jù)都需要通過此接口進行定位。在實際的應(yīng)用中需要實現(xiàn)此接口,并提供所有的綁定數(shù)據(jù)。

          3. 在business中定義了兩個類 ServiceLocator和Responder。
          ServiceLocator這是偽單例類, 應(yīng)用開發(fā)者用于定義并獲得服務(wù).
          之所以是偽單例類, 是因為ServiceLocator是定義在mxml中的,
          它需要一個無參數(shù)的Public構(gòu)造函數(shù). 使用中必須定義一個ServiceLocator的子類, 并在其中定義需要的服務(wù).

          代碼示例:首先在Services.mxml中進行如下定義:

           * <cairngorm:ServiceLocator xmlns:mx="http://www.macromedia.com/2003/mxml"
           
          *                           xmlns:cairngorm="org.nevis.cairngorm.business.*" >
           
          *
           
          *   <mx:RemoteObject id="customerDelegate" source="org.nevis.cairngorm.samples.login.CustomerDelegate"
           
          *                    result="event.call.resultHandler( event )"
           
          *                    fault="event.call.faultHandler( event )">
           
          *   </mx:RemoteObject>
           
          *
           
          * </cairngorm:ServiceLocator>

          在Flex主應(yīng)用中添加一行:
           <business:Services id="services" />
          其中business命名空間在應(yīng)用頭部進行申明
           xmlns:business="org.nevis.cairngorm.samples.store.business.*"
          ServiceLocator使用方法:
          在業(yè)務(wù)代理類(Delegate)中通過如下方式進行調(diào)用:
           *   var service = ServiceLocator.getInstance().getService( "customerDelegate" );


          在View中,定義了兩個類 ViewLocator和ViewHelper
          ViewHelper:用于隔離Command命令類和View視圖的具體實現(xiàn).
          為了執(zhí)行業(yè)務(wù)功能, Command類需要查詢并更改視圖,
          在執(zhí)行業(yè)務(wù)邏輯前, 命令類需要從視圖中獲得用戶輸入的數(shù)據(jù);
          業(yè)務(wù)邏輯結(jié)束后又經(jīng)常需要更改視圖, 顯示執(zhí)行結(jié)果.
          通過將查詢和更改視圖的操作封裝到單獨ViewHelper類中, 命令類完全不需要了解視圖類的任何信息.
          ViewHelper屬于一種特殊的視圖, 當(dāng)ViewHelper創(chuàng)建后, 就被注冊到指定的視圖.
          ViewHelper繼承自MXMLObject, 在重寫的初始化函數(shù)(initialized)中, 調(diào)用ViewLocator進行注冊,
          并指定unload方法的監(jiān)聽函數(shù)unregister, 在unload時, 調(diào)用unregister, 使用ViewLocator的取消注冊.

          ViewLocator是一個單例類, 用于獲取ViewHelper操作視圖.
          命令類需要通過ViewHelper的方法來查詢更改視圖, 而ViewLocator即用于讓命令類取得需要的ViewHelper.
          命令類不需要知道ViewHelper的名稱, ViewLocator會返回需要的ViewHelper實例.

          現(xiàn)在Cairngorm的基礎(chǔ)框架已經(jīng)介紹完畢,將在以后繼續(xù)介紹如何在實際應(yīng)用中使用上面提及的基礎(chǔ)框架。






          主站蜘蛛池模板: 沙田区| 寿阳县| 五华县| 淮滨县| 兴宁市| 临洮县| 朝阳县| 舒城县| 洪江市| 正安县| 万州区| 惠水县| 高阳县| 拜城县| 元氏县| 视频| 德昌县| 河源市| 常宁市| 苏尼特右旗| 双江| 康定县| 仙游县| 页游| 博乐市| 嵊泗县| 华坪县| 阜新市| 雷州市| 贵德县| 靖宇县| 曲水县| 平山县| 二连浩特市| 三穗县| 施甸县| 华阴市| 邢台县| 论坛| 白银市| 金华市|