在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. 模型,视图,视图模型和演示器
- 6. MVC模式:视图是否应该引用模型
- 7. Python命令是否适合Vim的可视模式?
- 8. Zend_Form在哪里适合模型视图控制器范例
- 9. 导航回视图时是否存在处理视图模型的好模式?
- 10. 代理是否适合创建演示模式?
- 11. 如何整合标记为[WebMethod]的ASP .Net模型视图展示器(MVP)模式和静态页面方法?
- 12. 模型 - 视图 - 演示者模式中的演示者是否应处理视图上的多个“UI”元素?
- 13. 模型 - 视图 - 演示者模式中“视图”的用途是什么?
- 14. 合并视图模型
- 15. 型适合视图
- 16. 是否包括视图模型
- 17. 是否有将模型转换为视图模型的快捷方式?
- 18. 模型视图控制器与模型查看演示文稿
- 19. Oracle是否允许跨模式视图?
- 20. 模型视图演示者和复合视图
- 21. 模型视图控制器设计模式代码示例代码示例
- 22. iPad:以模型视图显示视图
- 23. ASP.NET MVC模型复合物结合视图模型对象
- 24. 转换模式为视图模型
- 25. 一组图像视图不适合横向模式
- 26. 模型的最合适的位图类
- 27. 模型 - 视图 - 控制器(MVC)优于模型 - 视图的优点是什么?
- 28. ASP .NET MVC 2 - 的ViewModels VS普通视图和模型
- 29. MVVMLight - 视图模型引用了其他的ViewModels
- 30. 模型视图控制器
几个月的试验和错误让我想到了在每个案例的基础上使用虚拟机。它在包装模型方面确实简化了大量工作,因此可以轻松调整更改。不过,我使用它们作为包装来简化事情。 – Jonn 2010-09-07 01:57:40