什么是 PureMVC 框架(提供下载)
PureMVC是在基礎的經典模型、視圖和控制器上建立的一個輕量級的應用框架,這種開源框架是免費的,它最初是執行的ActionScript 3語言使用的Adobe Flex、Flash和AIR,現在已經移植到幾乎所有主要的發展平臺,目前支持兩個版本框架:標準和多核,總之,標準版提供了一種簡單的編碼分離的方法,按照MVC設計概念。除此之外,多版本允許多個PureMVC應用運行在同一個虛擬機;模塊化編程
?
AS3版 PureMVC 下載地址:
http://puremvc.org/pages/downloads/AS3/PureMVC_AS3.zip
?
?
PureMVC框架概述與UML視圖
docx文檔下載地址:http://as3libs.googlecode.com/files/PureMVC.rar
框架概述
本文討論PureMVC框架的類和接口,通過簡單的UML(統一建模語言)圖表闡述他們的作用、職責和合作。
PureMVC有一個非常狹隘的主要目標:用于幫助程序員分離代碼為三個離散的層:即模型,視圖和控制器。
在該經典的MVC元模式實現框架中,應用層有三個單例(一個只創建一次的類)所表示。而第四個單例,Fa?ade類通過一個單一的接口為應用程序之間提供通訊,從而簡化了開發。
模型(Model)簡單的指向Proxy的引用。Proxy代碼負責操作數據模型,與遠程服務通信存取數據。
視圖指向Mediator的引用。Mediator管理視圖組件,增加事件監聽器,操作視圖組件的狀態。
控制器包括命令類及其映射。命令類是無狀態的,只有需要時才被創建。
Fa?ade單例初始化Model, View, Controller,并且能訪問各層類的Public方法。
?
Fa?ade與核心類
?
Fa?ade類令roxies, Mediators和Commands之間以松耦合的方式允許互相通信,而不需要導入或知道框架核心的存在。當我們創建一個Fa?ade類具體的應用時,就可以“即開即用”的使用它了。附帶的,與Fa?ade類的交互將會最大化的降低開發者對API知識的了解程度。
核心成員類Model, View和Controller分別實現了IModel, IView 以及 IController 接口,Fa?ade類實現了由核心接口組成的IFacade接口。
?
View, Mediators和View組件
?
View類被實現為一個用來緩存指向一個IMediator實例引用的單例。
Mediators類幫助我們創建或者重用已經存在的用戶接口組件,而不用讓他們通訊的PureMVC程序的知識去影響他們。具體的Mediators實例必須實現IMediator接口,通常是作為Mediator類的子類來實現的。
View視圖用來顯示數據和處理用戶交互。在一個基于flash的應用程序中,他們通常通過使用事件和傳遞一些屬性給其Mediators類去檢查或者控制,以便與View的Mediators類交互。一個Mediator類通過View組件的數據與之建立聯系。當一個Mediator 類的實例被view注冊時,他會被假設為他需要獲取通知。因此必須返回一個包含所有他感興趣數據的通知名數組。
因為Mediator類必須實現IMediator接口,所以一個Mediator實例擁有handleNotification方法。當該實例被View組件注冊,一個Observer實例就被創建并且被注冊給每一個Notification的數組中。這樣Mediator的handleNotification方法就被觸發,而不論注冊Notification的Mediator是否感興趣。
Mediator類由于實現了INotifier接口而具備了sendNotification方法,sendNotification方法的參數是一個新的Notification通知,而后使用一個IFacade接口的單例去廣播。
?
Mediator類的protected屬性被初始化用于注冊IFacade實例,并且因此Mediator必須在主程序初始化Fa?ade實例后被注冊。
?
Model, Proxies與數據對象
?
Model類被實現為一個簡單的指向IProxy引用的單例。
Proxy類幫助我們暴露數據模型和實體類(當域邏輯和服務支持時)給應用程序,使得程序可以被其它地方被復用或重構。
我們可能通過使用一個Proxy實例來簡化指向本地數據對象的管理,在這種情況下交互可能引起一些數據的同步操作。一個Proxy實例也可能被用來進行程序的原創服務操作,加載或者保持數據。這時,我們可能需要出發一個方法或者基于Proxy去設置數據,并且等待該Proxy從服務器成功加載到數據后廣播一個Notification通知。
Proxy類由于實現了INotifier接口而具備了sendNotification方法,sendNotification方法的參數是一個新的Notification通知,而后使用一個IFacade接口的單例去廣播。
Proxy類的protected屬性被初始化用于注冊IFacade實例,并且因此Mediator必須在主程序初始化Fa?ade實例后被注冊。
?
Controller與Commands
?
MacroCommand類從它的構造函數中觸發initializeMacroCommand方法。使用者必須在其子類中重寫initializeMacroCommand方法,一般addSubCommand方法添加所有Command??梢允褂肧impleCommands 或者 MacroCommands中的任何一種。
?
View, Observer與Notification
?
Proxies,Mediators與Commands類之間的通訊是通過廣播Notifications來實現松耦合和跨平臺特性的:
Proxies可以發送,但不能接收Notification
Mediator聲明感興趣的Notification和接收Notification
Commands被觸發或廣播Notifications
PureMVC應用程序可能運行在不能訪問Flash Event和EventDispatcher類的環境中,所以框架使用觀察者模式以一種松耦合的方式在Model, View, Controller之間通信。
PureMVC使用觀察者模式就是為了該目的。IObserver攜帶一個希望被關注(即“被關注的內容”)的對象引用,該對象的一個方法將會在INotification實例被廣播(即“被關注方法”)時被觸發。
View組件的職責是管理Notification的名稱給Observer列表,以及當有Notification被發送時通知所有的Observers。
?
文章來源: 我要學flash網(www.51xflash.com) 原文地址:http://www.51xflash.com/article/flex/201107/04-14515.html
轉載于:https://www.cnblogs.com/jiushini/archive/2012/04/22/2464882.html
總結
以上是生活随笔為你收集整理的什么是 PureMVC 框架(提供下载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】ceph作为OpenStack的
- 下一篇: 各排序算法的C++实现与性能测试(转)