也許我很瘋狂,但我得到 MVC。這說得通。 MVVM似乎是一種讓MVC變得更難的方法,我錯了嗎(如果是這樣,爲什麼?)?爲什麼我需要WPF/Silverlight MVVM,有沒有什麼好的理由,一個不能使用MVC?
4
A
回答
2
我認爲,如果你得到MVC,那麼MVVM是真的是相同的 - 與1額外的部分(ViewModel)。 MVVM在我看來更有用的原因與新的DataBinding流程有關。 ViewModel提供了有用的抽象和清晰的數據綁定,以及綁定是如何呈現或轉換的。這就是我的想法。
MVC中缺少的部分實際上是MVVM模式,在我看來這只是MVVM的隱藏部分。如果你看看大多數MVVM框架,大多數提供了一些消息或通知系統,這實際上提供了MVC中缺少的Controller方面。
將ViewModel視爲View的代碼隱藏,View作爲視圖的設計者,Model作爲Model,以及Notification/Messaging系統作爲Controller,並且我們有一個真正的等價模式。
這對我來說也是一種理解(我也來自MVC模式,但現在喜歡MVVM模式)。
2
也許this是有幫助的。
2
你不需要需要 MVVM - 它運作良好。
MVVM只是一種選擇。你可以自由使用MVC。 MVVM只是利用了WPF和Silverlight中的一些特定功能(主要是令人驚歎的DataBinding支持,還有模板和命令),以便使開發人員的生活變得更簡單。 MVVM特別適合將View與代碼分離 - 甚至比MVC更好,因爲使用DataBinding允許設計人員更有效地更改View,而不用擔心代碼更改而不是MVC。
MVVM還具有與WPF和Silverlight背後的基本設計原理密切相關的優點。 MVVM的基本概念與WPF和Silverlight的設計非常相似,處於相當低的水平 - 例如,查看模板如何與自定義控件一起工作,並將其與View/ViewModel分隔進行比較,並且存在很多相關性可以繪製。
相關問題
- 1. 我們爲什麼需要,使用貓鼬有什麼好處
- 2. 有什麼理由爲什麼要使用MPI的Wtime?
- 3. 爲什麼我需要Symfony formbuilder?有什麼好處?
- 4. 模型中有什麼?爲什麼我們需要使用它
- 5. 爲什麼Entity Framework 4.0需要使用DTM?有沒有可能不使用它?
- 6. 有什麼理由爲什麼一個項目沒有settings.py文件?
- 7. 我爲什麼要使用MVVM?
- 8. 爲什麼要使用websocket,使用它有什麼好處?
- 9. 有沒有什麼好的理由不使用unicode而不是string?
- 10. 爲什麼我需要使用AngularJS的<form>是否有任何理由?
- 11. 爲什麼要使用MVC /路由器
- 12. 爲什麼我不需要使用Adapter.notifyDataSetChanged()?
- 13. 爲什麼我不需要
- 14. 有什麼理由不使用OpenID?
- 15. 爲什麼MVC而不是好的舊的ASP.NET?仍然沒有理解爲什麼我應該走這條路?
- 16. 爲什麼我的課沒有什麼?
- 17. 單個等於一個if。的JavaScript。有什麼好的理由?
- 18. 爲什麼我需要Iterator接口,爲什麼要使用它?
- 19. 不使用<script defer>今天有什麼好的理由?
- 20. 有沒有什麼好理由不使用'define'參數長度可變?
- 21. 爲什麼我需要同步由Collections.synchronizedList
- 22. 爲什麼我的Qt應用程序沒有理由崩潰?
- 23. 爲什麼HttpContext.Current需要一個類中使用,但沒有一個方法
- 24. C#MVC:使用Modelbinders有什麼好處?
- 25. 只有Spring-MVC需要什麼jar包?
- 26. 爲什麼我們使用ArrayAdapter?這有什麼好處?
- 27. 有沒有什麼好理由在C++中使用'malloc',何時有'新'?
- 28. 有沒有(仍)有什麼好理由使用java日期/時間日曆API?
- 29. 爲什麼我需要一個沒有端點的USB備用接口?
- 30. 爲什麼我需要一個沒有'創建會話'權限的Oracle用戶?