云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          在筆記一中,忘記介紹一下Iteration::two和Cairngorm的背景了。
          Iteration::two是一家致力于RIA開發的公司。 詳情請看: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


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

          2. 在Model中定義了ModelLocator接口,ModalLocator是所有數據綁定的接口,也就是說應用中所有需要進行綁定的數據都需要通過此接口進行定位。在實際的應用中需要實現此接口,并提供所有的綁定數據。

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

          代碼示例:首先在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主應用中添加一行:
           <business:Services id="services" />
          其中business命名空間在應用頭部進行申明
           xmlns:business="org.nevis.cairngorm.samples.store.business.*"
          ServiceLocator使用方法:
          在業務代理類(Delegate)中通過如下方式進行調用:
           *   var service = ServiceLocator.getInstance().getService( "customerDelegate" );


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

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

          現在Cairngorm的基礎框架已經介紹完畢,將在以后繼續介紹如何在實際應用中使用上面提及的基礎框架。






          主站蜘蛛池模板: 九寨沟县| 卓尼县| 宜兰县| 怀集县| 济宁市| 神池县| 沙湾县| 乌拉特前旗| 当雄县| 纳雍县| 碌曲县| 岳普湖县| 扎兰屯市| 漳州市| 泗洪县| 闵行区| 沾益县| 县级市| 威远县| 万山特区| 易门县| 光山县| 扶余县| 斗六市| 威信县| 泌阳县| 常宁市| 家居| 遂宁市| 海淀区| 恩施市| 五河县| 垫江县| 滁州市| 南丹县| 仲巴县| 特克斯县| 泰宁县| 南丰县| 浠水县| 鹤峰县|