在MVC中使用了ViewModels,我想知道是否将相同的应用于MVP模式是切实可行的。我只有一些考虑因素,一个是MVP已经相当难以实现(所有额外的编码,看似复杂性不多)或者ViewModel已经有一种类似的建模数据或实体的方式。以ViewModel的形式添加另一个层是多余的还是一个逻辑抽象我作为一个实现MVP模式的人应该坚持?
答案 0 :(得分:3)
ViewModels在MVP中非常有用,我认为比额外编码的成本增加更多的好处。
我认为指导规则是在您需要的地方使用它们,而不仅仅是为了自己添加更多模式或架构。
我在一个体面的公众面向asp.net Web应用程序上工作,但以下适用于WinForms中的MVP。以下是我发现在MVP中使用VM的原因。
该网站汇总了大量LOB网络服务的数据。这些服务由不同业务部门的各个开发团队维护。回来的数据就是:
但我发现使用它的最大原因是提供的模型与MVC中的模型相同:模型不符合视图的形状。我们正在组合模型类并为计算或聚合值添加额外的字段等。
就我们所做的改变而言,我们必须:
唯一耗费时间的部分当然是将模型映射到视图模型。在我们的例子中,我们被迫在我们的演示者中进行了大量的处理,以获得我们需要的数据,分配属性并不是什么大问题。对于更简单的需求,像AutoMapper这样的东西会消除映射的痛苦。
答案 1 :(得分:0)
找到一个类似于我想要的MVPVM实现。 (当我实现它时发现它非常复杂。很多重复的工作。使用代码生成工具可能会更好)