我認爲MVP中由M表示的'Model'可能是領域模型還是演示/視圖模型?Models in Model View演示者MVP
3
A
回答
7
是的,模型本質上可以是任何模型。我看到它的方式,MVC的初衷是它是一個域對象,而且這當然還是有可能的。
但是,我的經驗表明,如果我們引入專門的ViewModel/Presentation Model作爲領域模型和視圖之間的絕緣,就會達到更好的契合度。
即使ViewModel似乎與Domain Object在語義上相同,這樣的絕緣使我們能夠獨立地改變兩個,因此遵循Single Responsibility Principle。
通常情況下,View需要一些適用於特定UI技術的邏輯,而且這種邏輯非常適合於領域模型。示例包括:
- 確定是否應啓用或禁用特定控件的邏輯。領域模型應該對控件一無所知。
- 將狀態映射到顏色的邏輯。顏色是特定於技術的 - 它們是Windows窗體,WPF和ASP.NET中不同的CLR類型。
- 驗證。輸入表單通常允許輸入無效數據而不會拋出異常。相反,他們向用戶提供數據無效的反饋。另一方面,域對象應該保護它們的不變量,從而導致無效輸入。
更多信息可以在這裏找到
相關問題
- 1. Swing Model View Presenter(MVP)示例
- 2. MVP(Model View Presenter)或MVC(Model View Controller)
- 3. MVP演示者和事件
- 4. 從演示者(MVP)更新組合框
- 5. Webforms MVP:什麼是演示者責任
- 6. 恢復ViewPager片段的演示者(MVP)
- 7. MVP - 演示者是否應使用Session?
- 8. 演示者之間的MVP通信?
- 9. MVP演示者未正確注入
- 10. 需要訪問GWT中另一個演示者狀態的演示者MVP
- 11. Model-View-Presenter中的演示者可以執行非UI操作/邏輯嗎?
- 12. MVP指導 - 演示實例
- 13. 的Android MVP:在演示
- 14. 演示者在MVP中的實現問題
- 15. MVP:如何寫出從演示者日誌
- 16. MVP:關於演示者角色的問題
- 17. MVP - 演示者和服務層 - 在哪裏聲明服務層
- 18. MVP - 從視圖獲取數據到演示者
- 19. MVP:演示者如何訪問視圖屬性?
- 20. 演示者是否在MVP模式中執行GUI邏輯?
- 21. Android MVP與ViewPager演示者生命週期
- 22. Dagger2:將Api模塊注入演示者(MVP)
- 23. MVP:一個複雜形式(winforms)的多個視圖/演示者?
- 24. MVP模式用戶控件,演示者問題
- 25. 該片段可以在MVP中擁有演示者?
- 26. 如何在使用Dagger/MVP時管理演示者依賴項?
- 27. MVC one view and different models
- 28. 在Model-View-Presenter應用程序中,是否有一位演示者在另一個演示者上調用方法?
- 29. 應如何爲MVP WinForms應用程序的主要演示者調用Application.Run()?
- 30. 如何在MVP中爲抽象模型創建視圖和演示者
你的意思是MVC? – 2010-01-09 10:36:46
@Jan我的意思是MVP。我的問題有問題嗎?可能有些缺乏理解。 – David 2010-01-09 10:42:03