pureMVC 是以 MVC 架構為基礎的 Framwork,它並不侷限於應用在 Flex 的開發上
在手機、PHP、微軟基礎的架構下都可以使用它
pureMVC 除了 MVC 的基礎之外還額外新增了 Façade,以下說明這四項分類的要點
一、Façade
● Façade 是 pureMVC 的核心,他以單例模式的方法建構了一個唯一的Façade實例
● 一個 Façade 需要繼承 org.puremvc.as3.patterns.facade.Facade
● Façade 都會定義整個應用程式會用到的所有事件(Notification) 例如以下:
public static const USER_LOGIN:String="login"; //使用者登入 事件
● 通常都會覆寫(override) initializeController() function,這裡是用來關聯每個 Notification 所對應到的
Command 例如以下
//註冊 USER_LOGIN Notification
this.registerCommand(USER_LOGIN, LoginCommand);
以下就來看看跟 Controller 有關的 Command
二、 Controller
● Controller 保管所有的 Command,一個 Command 都是由 Notification 所觸發的
● Command 是無狀態的,只有在前端(Mediator)發出 Notification 時才會建立
● 撰寫 Command 類時,須覆寫 execute (INotification) 這個方法,會傳入一個Notification
通常此方法內會調用一或多個 Proxy 來執行業務邏輯
● 透過以下過程取得 Proxy,並執行事務
var loginProxy:LoginFormProxy = facade.retrieveProxy(LoginFormProxy.NAME) as LoginFormProxy;
loginProxy.login(account); //執行 "登入的邏輯"
接下來看看跟 Model 有關的 Proxy
三、Model
● Model 層保管了所有的 Proxy
● 透過 Proxy 來操作應用程式中的 Data Object,並且和遠端的後台進行請求及資料交換等
● Proxy在處理完事務後通常會發送 相關的Notification
最後來看與View有關的 Mediator
四、View
● 通常會將 UI 分割出各個 Component,讓每個元件各司其職
● 而每個元件通常都會有一個 Mediator 來負責處理元件的視圖變化等
● 元件會觸發事件(ie.按下登入按鈕),並由 Mediator 來發送相關的 Notification
● Mediator 也會關心一些事件(Notification)也可能不會(ie.登入成功或失敗)
當收到這些事件時,則會對元件做視圖的呈現或變化等
● 覆寫 listNotificationInterests() 方法,表示這個 Mediator 關心的事件(Notification )
● 覆寫 handleNotification(INotification) 方法,以處理收到這些事件的後續動作
以上是我從 pureMVC 最佳實務 整理出來的心得
接下來是 一個教學範例的程式
【pureMVC】教學範例(一)
沒有留言:
張貼留言