PureMVC 官方文件翻譯(一)
最近在學習PureMVC框架,感覺最權威的還是閱讀官方文件,順便翻譯了下全當記筆記了。
PureMVC概覽
這篇文件他討論PureMVC框架的類和介面,使用UML來闡述它們的角色、職責和協作。
PureMVC框架有一個非常細小的目標一一就是幫助你把應用程式編碼之間的關聯分離成明確的三層:模型層,檢視層和控制層。
經典MVC設計模式的實現把應用程式以3個單例的形式呈現。在PureMVC中第四個單例Facade通過一個簡單的介面為程式提供了通訊便利,簡化了開發。
Model層這裡叫Proxy, Proxy提供了API來管理資料模型層(包括遠端父物資料查詢)。
View層這裡叫Mediator,Mediator模式適配和管理檢視元件。(使用者介面)
Controller這裡叫Command, Command沒有自主權,並且只有當需要時被建立。
Facade 初始化和快取Model, View 和 Controller這幾個核心元件,並且提供了一個單獨的地方來訪問它們的公有方法。
Facade類使得Proxies, Mediators 和Commands 以鬆耦合的方式來彼此通訊,沒必要直接的引用或訪問框架中的核心。
當我們為程式建立一個具體的Facade實現時,我們可以容易的與Facade互動,給使用API的開發者以最少的細節來成功的使用框架。
Model, View, Controller 這三個核心角色分別實現了IModel, IView和IController介面。 Facade實現了IFacade, 以組合方式實現了所有的核心介面。(IModel, IView和IController)
View, Mediators 和View元件。
View類以單例的方式被實現並且提供了具體的IMediator例項的訪問。
Mediators 幫助我們建立和複用現有的使用者介面元件,使得我們不必要關注PureMVC的實現細節。具體的Mediators必須實現IMediator介面,通常以繼承的方式來實現。
檢視元件用來顯示資料或者接受使用者手勢。以一個Flash程式為例,它們通常使用事件和暴露一些屬性給具體的Mediator來通訊、監視和管理。一個Mediator連線這一個檢視元件和它的資料並且和以它為代表的系統的剩下部分進行通訊。
當一個具體的Mediator被註冊到View的時候,Mediator可以被它感興趣的Notification查詢。Mediator類必須返回它期望被通知的Notifications的陣列的名字。
因為Mediator必須實現IMediator介面,具體的Mediator將有一個handleNotification方法。當Mediator註冊到View的時候,一個Observer例項被建立並且註冊到這個陣列中的每一個Notification.因此,無論什麼時候只要有一個Mediator感興趣的Notification被髮送,Mediator的handleNotification方法就會被呼叫。
Mediator框架類實現了INotifier,因此有一個sendNotification方法,這個方法帶著引數給一個新的Notification,構建這個Notification並且使用IFacade單例的例項傳送它。
Mediator的保護屬性facade初始化來註冊IFacade例項,因此Mediator必須在具體的Facade初始化之後被構建。
未完,待續...