MVVM教程 使用MVVM總結

2022-09-16 02:09:12 字數 682 閱讀 5346

提到幾點錯誤使用mvvm的徵兆:

1. 你的模型和檢視模型名字相同。

檢視模型不應該是對模型的包裝。檢視模型的職責是外部服務的請求中介,比如載入和儲存資料。而資料本身,以及驗證和大多數業務邏輯應該放在模型裡。

我經常強調這點。每當你建立乙個檢視模型包裝乙個模型,你就在你的api裡引入乙個巨大漏洞。具體地,任何直接引用這個模型的東西都可能以檢視模型無法察覺的方式改變某個屬性,因此ui也不會有相應的改變。同樣地,模型裡計算欄位的任何更改也不會回傳給檢視模型。

2. 你的檢視和檢視模型名字相同。

理想的情況下,檢視模型是不知道使用它們的檢視的,尤其是wpf應用程式有多個視窗共享相同的檢視模型。

對於比較小型的應用程式來說,整個應用程式可能只需乙個檢視模型。對於比較大型的應用程式來說,主要功能可能需要乙個檢視模型,每個次要方面也需要乙個,比如配置管理。

3. 你沒有**隱藏。

mvvm light的eventtocommand很有問題,因為它會使得控制項從螢幕移除之後無法被垃圾**。

4. 檢視模型監聽屬性更改通知

如果乙個模型的的生命週期比監聽它的事件的檢視模型長,那麼可能導致記憶體洩露。不同於檢視有個unloaded事件,檢視模型對於生命週期管理沒有很好的方案。因此如果它們關聯到存活期比它們更長的檢視模型的事件,檢視模型將會出現洩露。

本文翻譯自 .netframework mvvm

MVVM使用實踐

這篇博文是針對目前公司所在的團隊使用mvvm 具體可以看limboy的博文 的乙個問題總結和建議規範,記錄在此以作備份。首先再把這張圖拿出來看看 總結來說,團隊在使用mvvm模式的過程當中普遍存在的問題 分割線 什麼時候需要建立viewmodel?已經在實踐的 1.viewcontroller vi...

MVVM使用實踐

這篇博文是針對目前公司所在的團隊使用mvvm 具體可以看limboy的博文 的乙個問題總結和建議規範,記錄在此以作備份。首先再把這張圖拿出來看看 總結來說,團隊在使用mvvm模式的過程當中普遍存在的問題 分割線 什麼時候需要建立viewmodel?已經在實踐的 1.viewcontroller vi...

為何放棄MVC使用MVVM

mvc 全稱是 model view controller,是模型 model 檢視 view 控制器 controller 的縮寫。它表示的是一種常見的客戶端軟體開發框架。現在,mvc 已經成為主流的客戶端程式設計框架,在 ios 開發中,系統為我們實現好了公共的檢視類 uiview,和控制器類 ...