我认为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