2009-06-08 166 views
1

我在我的應用程序中實現了模型 - 視圖 - 控制器模式。這不是一個Web應用程序,但MVC適合它。模型視圖控制器

模型的所有更新現在都通過控制器進行路由。即使從視圖更新也發送到控制器,它將被路由到模型。 (根據應用模式,我已經在模型和控制器之間聲明瞭決策制定的類)。在大多數模式中,我看到了直接更新模型的觀點。這在這種模式中是否有效?

回答

2

視圖不應該直接訪問模型,總是通過控制器訪問,所以你認爲這是正確的。

3

視圖可以是模型的觀察者。
模型可以通過觀察者界面訪問視圖。當模型改變時,它可以通知視圖或控制器。觀察者模式將視圖和控制器的模型分離開來。

Model-View-Controller

...

當一個 控制器操縱模型 完全採用被動模式。控制器修改模型 ,然後通知視圖 模型已更改,並應刷新 (請參見圖2)。在這種情況下,模型 完全是 獨立於視圖和 控制器,這意味着有 沒有手段爲模型報告 其狀態的變化。
...

當 模型更改狀態而不 控制器的參與活動模型被使用。這可以在 發生時,其他來源正在改變 的數據和更改必須 反映在意見。考慮一個 股票行情顯示。您會收到外部來源的 股票數據,並且 想要更新股票數據更改時的視圖(例如, 股票波段和警報窗口) 。由於 只有模型檢測到內部狀態發生變化時, 模型必須通知視圖刷新 顯示。
...

+0

非常感謝您的幫助。 在我的情況下,模型不是完全主動或被動的。當控制器更新模型(通過正在做決策的狀態類)並且觀察者被模型通知時,模型被更新。另外,模型在啓動期間通過從配置xml文件中讀取默認參數進行更新。在這種情況下,觀衆也不會被接受。除此之外,我所有的updatse都通過控制器進行控制。 – sarat 2009-06-12 12:45:00