PureMVC框架的目標很明確,即把程序分為低耦合的三層:Model、View和Controller。它們合稱為PureMVC框架的核心,由Facade統一管理。關于它的核心層,我們不需要管太多,只需要記得下面幾點就可以了:
一、Model保存對Proxy對象的引用,Proxy負責操作數據模型,與遠程服務通信存取數據。
二、View保存對Mediator對象的引用。由Mediator對象來操作具體的視圖組件(View Component,例如Flex的DataGrid組件),包括:添加事件監聽器,發送或接收Notification ,直接改變視圖組件的狀態。
三、Controller保存所有Command的映射。Command可以獲取Proxy對象并與之交互,通過發送Notification來執行其他的Command。
上面的什么對什么的引用,可以一開始看的時候很難理解,我們暫時不用管它誰對誰的引用的。這些已經由框架為我們管理好了,我們要所要做的是編寫具體的Command,Mediator,Proxy。
一、Proxy是負責操作數據模型的,什么是數據模型?數據模型就是數據庫,XML等等。我們可以直觀地理解為,Proxy是用來對數據模型進行查詢、插入、更新、刪除等操作的類。操作完成后,它就會發送Notification,也就是通知,告訴其它兩個層我已經完成工作了。
二、Mediator負責操作具體的視圖組件,包括:添加事件監聽器,發送或接收Notification ,直接改變視圖組件的狀態。好像抽象了點。具體的說吧,Mediator是負責管理用戶界面,與用戶進行交互操作的。如:給Button添加事件,當用戶點擊按鈕時,發送Notification,告訴Controler我們執行什么樣的操作。比如這是一個登錄的按鈕,那么Mediator就會告訴發送通知給Controler,告訴它要執行登錄操作。此外,Mediator還負責直接改變視圖的狀態。就像,我點擊了登錄按鈕后,Mediator就改變它,讓登錄按鈕不過用,避免重復操作。它還可以在視圖上顯示一條信息,告訴我正在執行登錄操作。總的來說,Mediator是用來管理視圖的。
三、Command可以獲取Proxy對象并與之交互,通過發送Notification來執行其他的Command。再拿上面的登錄例子作解釋,當點擊了登錄按鈕后,Mediator就會告訴Controler要執行相應的Command了,比如LoginComand。既然是登錄,那么還得要知道用戶的信息才行。Command就會發送Notification告知Proxy,我需要某個用戶的信息。那么Proxy就會訪問數據庫(也可以是別的數據模型),查詢對應的用戶信息,然后發送Notification通知Command我已經查詢好了,差把信息返回給Command進行驗證,與些同時,Mediator也可以接收Proxy發送的Notification,通過視圖告訴用戶正在驗證信息。Command驗證了用戶信息后,發送Notification把驗證結果返回給Mediatory,告訴用戶驗證的結果。或者,Command也可以發送Notification執行其它的Command操作,比如驗證通過后,讀取用戶的詳細資料。
上面的Command,Mediator,Proxy的具體實現類都是要自己編寫的,工作量還是比較大的。
posted on 2010-11-26 14:07
紫蝶∏飛揚↗ 閱讀(625)
評論(0) 編輯 收藏 所屬分類:
FLEX 4