在MVC中使用ViewModels之後,我想知道是否將相同的MVP模式應用於實際。我只有幾個考慮因素,一個是MVP已經相當難以實現(所有附加的編碼,看起來並不複雜),或者ViewModels已經有一些類似的數據或實體建模方法。以ViewModel的形式添加另一個層是多餘的還是邏輯抽象,作爲實現MVP模式的一員,我應該堅持?ViewModels是否適合模型視圖展示器模式?
3
A
回答
3
ViewModels在MVP中可能非常有用,我認爲增加更多的好處額外的編碼。
我認爲指導原則是在需要它們的地方使用它們,而不是簡單地爲他們自己添加更多模式或架構。
我在一個體面大小的面向公共的asp.net web應用程序上工作,但以下內容也適用於WinForms中的MVP。以下是我發現在MVP中使用虛擬機的原因。
該網站彙總了大量LOB網絡服務的數據。這些服務由不同業務領域的各種開發團隊維護。回來的數據是所有的地方在以下方面:
- 類型湯 - 存儲的GUID爲字符串,返回雙打,而不是小數,日期爲字符串,等等
- 瘋狂的命名約定 - 駱駝情況下的特性,下劃線在名稱中,縮寫jumbbles
但是我發現使用它的最大原因是提供的模型與MVC中的模型相同:模型不符合視圖的形狀。我們正在結合模型類,並增加額外的字段計算或彙總值等
在變化方面我們做了我們必須:
- 創建沿邊一個新的ViewModels文件夾視圖和主持人(控制器)夾
- 地圖的模型值來視圖模型
- 變化從一個模型類型的圖模型類型
- 視圖接口上的屬性根據新的對象實現視圖
其中唯一耗費時間的部分自然是模型到視圖模型的映射。在我們的案例中,我們不得不在我們的演示者中進行大量處理,以獲取我們需要的數據,分配屬性並不是什麼大不了的事情。對於更簡單的需求,像AutoMapper會消除這種映射的痛苦。
0
發現一個MVPVM的實現與我想要做的相似。 (當我實現它時發現它非常複雜,很多重複的工作,用代碼生成工具可能會更好)
相關問題
- 1. 將Activity設置爲視圖模型類是否合適?
- 2. MVVM:設計視圖模型架構,聚合/依賴的ViewModels
- 3. 擴展適配器模式
- 4. 工廠模式是否合適?
- 5. Decorator模式是否適合您?
- 6. 在擴展RecyclerView.Adapter的同時使用Decorator模式是否合適?
- 7. 在另一個CodeIgniter模型中加載模型是否合適?
- 8. 模型,視圖,視圖模型和演示器
- 9. 在MVC模式中使用視圖部分中的構建器模式是否合適
- 10. MVC模式:視圖是否應該引用模型
- 11. Python命令是否適合Vim的可視模式?
- 12. Zend_Form在哪裏適合模型視圖控制器範例
- 13. c#中的多視圖(或分層視圖)的模型視圖展示器
- 14. 導航回視圖時是否存在處理視圖模型的好模式?
- 15. 代理是否適合創建演示模式?
- 16. 如何整合標記爲[WebMethod]的ASP .Net模型視圖展示器(MVP)模式和靜態頁面方法?
- 17. 模型 - 視圖 - 演示者模式中的演示者是否應處理視圖上的多個「UI」元素?
- 18. 如何測試視圖模型是否在設計器模式或不在C#
- 19. 模型 - 視圖 - 演示者模式中「視圖」的用途是什麼?
- 20. 合併視圖模型
- 21. 實現流程圖/模型的最合適的設計模式
- 22. 是否包括視圖模型
- 23. 型適合視圖
- 24. 模型視圖控制器中的模型視圖控制器
- 25. Qt模型/視圖/控制器示例
- 26. 擁有多個視圖的視圖控制器是否合適?
- 27. 是否有將模型轉換爲視圖模型的快捷方式?
- 28. Oracle是否允許跨模式視圖?
- 29. 模型視圖控制器與模型查看演示文稿
- 30. 模型 - 視圖 - 演示者:爲什麼模型是靜態的?
幾個月的試驗和錯誤讓我想到了在每個案例的基礎上使用虛擬機。它在包裝模型方面確實簡化了大量工作,因此可以輕鬆調整更改。不過,我使用它們作爲包裝來簡化事情。 – Jonn 2010-09-07 01:57:40