我見過很多MVVM的例子。我可以看到View應該引用ViewModel。我最近見過一個ViewModel引用View的例子,這對我來說似乎是錯誤的,因爲它會導致更緊密的耦合。鑑於ViewModel經常被描述爲View和Model之間的媒介,ViewModel比Facade對象更多嗎?我希望我在這裏正確使用「門面」一詞。MVVM模式中的ViewModel引用應該使用哪些類型的對象?
0
A
回答
1
從技術上講,視圖模型應該引用模型,但從來沒有視圖。該視圖應綁定到視圖模型,並且視圖模型應該使用模型中的數據公開方便的屬性。
顯然,視圖模型的複雜性取決於應用程序和模型中的數據。但將其視爲「門面」並不是非常有害的(儘管開發人員的術語不完全正確)。
4
你的直覺是對的; ViewModel不應該引用視圖。
請注意,這是一個「應該」。純粹主義者說,ViewModel甚至不應該引用WPF的東西,如the Visibility enumeration,但我不同意。除此之外,ViewModel應該可以幫助您分離問題並提高代碼的可讀性。如果你不得不跳過這些環節以避免引用某些屬於視圖的內容,這表明你可能會過度使用它。
相關問題
- 1. MVVM中的ViewModel應該引用View嗎?
- 2. Neo4j對模式索引使用哪些索引類型?
- 3. MVVM模式中應該只有一個ViewModel類嗎?
- 4. 我應該使用哪種類型的asio解析器對象?
- 5. MVVM使用INotifyPropertyChanged模型不通知ViewModel
- 6. 我應該在MySQL中使用哪些類型的數據?
- 7. 使用MVVM模式時訪問ViewModel
- 8. 我應該使用哪個JavaScript框架來實現MVVM模式?
- 9. 使用MVVM和viewmodel通信的WPF窗口模式對話框
- 10. 我應該在Silverlight項目中使用Model-View-ViewModel(MVVM)模式嗎?
- 11. 對於同一行中的兩個外鍵引用,我應該使用哪種類型的模型關係?
- 12. 在模型中使用MVVM Light引用
- 13. 從WPF中的ViewModel類(MVVM模式)更新用戶界面
- 14. 對象關聯:哪個對象應該引用其他對象?
- 15. 我應該使用索引在這些類型的屬性的
- 16. MVVM中的Activity/Fragment和ViewModel應該做些什麼
- 17. MVVM模式,用於將ViewModel中的中間用戶輸入設置爲模型
- 18. 我應該在AlarmManager中使用哪種類型的類型?
- 19. 哪些vim選項應該在模式行中使用?
- 20. 計算列應該在MVVM模型中的哪個位置?
- 21. 應該使用哪種類型的設計模式來創建模擬器?
- 22. MVVM:我應該如何將ViewModel轉換爲模型?
- 23. MVVM - 視圖是否應該引用Presenter/ViewModel?
- 24. MVVM模型到ViewModel通信
- 25. MVVM模型應該如何?
- 26. 使用MVVM驗證ViewModel中綁定的ObservableCollection模式
- 27. MVVM:大多數ViewModel使用哪些方法?
- 28. 模型應該保持對其他模型的引用嗎?
- 29. 對於m:n關係,我應該使用哪些索引與MySQL?
- 30. mysql ---我應該使用哪種類型?
+1爲崇尚實用主義:) – kiwipom 2010-05-16 09:14:12