下面情境描述了MVC的動態行爲。處於簡化的目的,這些示意圖中只有一對視圖-控制器

情境1 用戶輸入導致模型發生變化,進而觸發變更傳播機制

控制在其事件處理過程中接受用戶輸入、對事件進行解讀並激活模型的服務過程。

模型執行請求的服務,導致其內部數據發生變化。

模型通知所有向變更傳播機制註冊了的視圖和控制器,即調用他們的更新過程。

每個視圖都向模型請求修改後的數據,並在屏幕上重新顯示自己。

每個已註冊的控制器都從模型哪裏獲取數據,以啓用或禁用某些功能。例如,模型的數據被修改後,可能啓用將數據存盤的菜單項。

原來的控制器重新獲取控制權,並從事件處理過程返回。

情境2 初始化MVC模式中的組件。這種代碼通常不在模型、視圖和控制器中,例如,可能位於主程序中。每次打開模型的視圖都將以類似的方式初始化視圖和控制器。初始化組建的步驟如下:

創建模型實例,隨後該實例將初始化其內部數據結構。

創建一個視圖對象。這將把指向模型的引用作爲參數,以便初始化視圖。

視圖調用關聯(attach)過程,向模型的變更傳播機制註冊。

視圖創建控制器,以繼續完成初始化工作。它將指向模型和自己的引用傳遞給控制器的初始化過程。

控制器也調用關聯過程,向變更傳播機制進行註冊。

初始化完成之後,應用程序開始處理事件。

查看原文 >>
相關文章