PureMVC 優缺點

來源:互聯網
上載者:User

    目前主流Flex的架構主要有Cairngorm和PureMVC兩種。Cairngorm是adobe自己推廣的架構,感覺Cairngorm只能稱為“architecture pattern”,基本上只是定義了一個工程分成那幾個部分以及每個部分的interface。另外Cairngorm通過Singleton 的ModelLocator來儲存資料,有很多副作用,也決定了不適用用組件開發。PureMVC基本上解決了Cairngorm存在的大部分問題。

     PureMVC的優點:

    (1)結合了MVC和MVP架構的優點,實現很徹底。

    (2)基本上可分為Façade、Command、Mediator(components)、Proxy(Value objec)四個部分,各部分耦合度很低,靈活度非常高(這也是個缺點,下面再談)。

    (3)各部分單元測試容易實施。

    (4)View重用容易實現。

    (5)可用於組件、Module開發。

    (6)Proxy的設計使得擴充和維護比較容易。

 

    PureMVC的缺點:

     (1)靈活度過高,要清晰控制一個事務過程不容易。

               PureMVC自己實現了Observer Pattern,處理過程變成了訂閱/發布過程,這樣做法使得靈活性非常好,也使得流程混亂不堪。

              它不像早期的Java web 架構webwork(struts)、spring使用集中的XML檔案控制流程程,也不像敏捷的代表Rails使用契約編程來規範流程。目前只是在   ApplicationFacade中定義事件名常量,流轉過程完全不可見。由於ActionScript還在發展過程中,其Reflection能力還比較弱,要實現上述功能還是比較困難。

 

    (2)代碼冗餘量高

             Mediator、Proxy等繼承類的冗餘代碼是比較多的,但是ActionScript不支援Generics以及Reflection能力弱,使得難以消減代碼。

 

   總的來說,PureMVC是不錯的架構,待ActionScript語言功能發展後,還有改進的餘地。

 

PureMVC   Reference :

(1)  http://puremvc.org/

(2)  PureMVC Explorer

(3)  Popups in Flex using PureMVC

(4) Understanding PureMVC Pipes

(5) A basic PureMVC MultiCore AS3 example using Pipes Utility and Modules

(6) FCG : a Flex Code Generator

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.