我过去读过一些关于模型的 MVC 建议,指出不应为域和视图重用相同的模型对象;但一直找不到愿意讨论的人why这不好。
我认为,创建两个单独的模型 - 一个用于域,一个用于视图 - 然后在它们之间进行映射会产生大量重复,加上繁琐的映射代码(其中一些可以通过诸如自动映射器 http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper.aspx)这可能很容易出错。
是什么让为这两个问题建立一个单独的模型值得重复和映射代码的麻烦?
从本质上讲,两个模型都是关于关注点分离的。我希望我的视图能够在单个模型上工作。我希望我的领域模型能够代表我与领域专家一起构建的概念模型。 ViewModel 通常存在技术限制。域模型是关于 POCO 的,并且不受显示(视图)或持久化(在数据库中或其他方式)数据的技术约束的约束。
假设屏幕上显示了三个实体。这是否意味着我需要强制三者之间建立关系?或者只是创建一个包含所有三个项目的 ViewModel 组件对象。使用单独的 ViewModel,视图问题与我的域分离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)