首先看看兩者的區別:
mvc:mode、view、controller
puremvc:mvc、proxy、mediator、command、facade
接著小心推敲各自的職責:
model、proxy:
model儲存對proxy物件的引用,proxy負責運算元據模型,與遠端服務通訊訪問資料。(這樣保證了model層的可移植性)
view、mediator:
view儲存對mediator物件的引用。由mediator物件來操作具體的檢視元件(例如datagrid元件),包括:新增監聽、傳送或接收notification,改變檢視元件的狀態。
controller、command:
controller儲存所有command的對映。command類是無狀態的,只在需要時才被建立。
command可以獲取proxy物件並與之互動,傳送notification,執行其他的command。例如應用程式的「啟動」和「關閉」。
facade:
單例,負責初始化核心層(model、view和controller),並能訪問他們的public方法。
(1)、負責初始化controller,建立command與notification之間的對映。
(2)、執行乙個command,註冊所有的mode和view
(3)、將mode、view和controller物件的引用儲存在自己的成員變數。
通訊方式:
puremvc通訊:
不採用flash的事件響應,而是使用觀察者模式來通訊。
實際被我們使用的:
notification:
facade儲存了command與notification之間的對映。當notification被發出時,對應的command會自動地由controller執行。
mediator:(傳送、宣告、接收notification)
當用view註冊mediator時,mediator的listnotifications方法會被呼叫,以陣列形式返回該mediator物件所關心的所有notification。
之後,當系統其它角色發出同名的notification時,關係這個通知的mediator都會呼叫handlenotification方法,並將notification以引數傳遞到方法。
proxy:(傳送,但不接收notification)
例如,proxy從伺服器收到資料時,傳送notification到系統。當proxy的資料被更新時,傳送notification到系統。
view和controller監聽proxy傳送的notification。使用者通過介面(view)與資料(proxy)互動。
對外公布運算元據物件的api。封裝了所有對資料模型的操作。
有這些命令:
******command:
只有乙個execute方法,僅接受乙個inotification例項作為引數。
macrocommand:
可以執行多個command。每個執行都會建立乙個command物件並傳參乙個對源notification的引用。
它在構造方法中呼叫自身的initializemacrocommand方法。只需要重寫這個方法,呼叫addsubcommand新增子command。
也可以任意組合******和macro成為乙個新的command。
Hadoop學習筆記(八)(SparkSQL概述)
hive 類似於sql的hive ql語言,sql 換 mapreduce spark hive on spark shark hive on spark shark翻譯成rdd元件 shark 僅僅只是把物理執行計畫從mr作業替換成spark作業 shark終止以後,產生了2個分支 hive社群,...
C C 之基礎學習筆記
1.空類 建構函式 成員函式都是不占用空間的,都是乙個size為1,作為類的佔位符,如何區分類 2.如果乙個類含有虛函式,那麼他的size將會是8 x64位 2.1 virtual大小是否與系統平台相關?x64和x86 2.2 vptr和vtable的原理和資料結構如何?3.建構函式的順序 先基類的...
Windows Socket 學習筆記 之基礎知識
一 基礎知識 本部分作為socket程式設計的基礎知識的補充,講述網路模型和網路協議介紹.對於網路協議非常清楚的大俠可以直接跳過,也可作為基本的了解。作為網路的理解,自己是在自己的理解基礎之上進行的總結,難免也有不足之處,望多提意見共同 交流。1 tcp ip協議模型由tcp協議和ip協議連個協議構...