0
因此,讓我們採取簡單的例子:應將UI狀態存儲在模型或控制器中?
data --> projection --> view
我在這裏呼籲投影什麼可以導致篩選,排序,突出等任何UI狀態...
在MVC模式,數據存在於模型,視圖是視圖,狀態屬於哪裏?
我曾經在控制器中存儲狀態,但我聽說它很糟糕,控制器應該保持「精益」,並且應該將所有東西都塞進模型中。我可以看到使用無狀態控制器進行測試的好處,但將模型中的數據與投影結合起來似乎並不直觀。
如果不同的視圖需要不同的數據預測會怎樣?它如何分解?
[編輯]找到一些相關的問題here和here但他們不直接回答這個問題。我知道把邏輯用於投影模型中的數據,但它沒有說明這些投影的狀態應該保持在哪裏。
我在數據可視化上下文中工作,投影是模型的處理版本,我想是一種緩存。 ViewModel在這裏似乎很適合。在MVVM中是否有必要擁有一個視圖或者視圖能夠直接訪問模型? – Renaud 2014-09-03 12:05:21
當你說「已處理」時,它讓我覺得它仍然是一個模型,只是該模型的一種不同表示,因此應該仍然存在於模型層中。如果您沒有將其「處理」爲專門針對您的特定視圖的對象,那麼它只是一個簡單的模型,這使決策變得容易。 – 2014-09-03 14:18:09
不要將緩存與不同的表示混爲一談。如果你期望對象在會話中出現,那麼它不是緩存。 – 2014-09-03 14:23:38