【发布时间】:2010-11-04 17:32:25
【问题描述】:
我在 ASP.NET MVC 中完成了几个项目,其中有一个主题我在任何地方都没有真正看到过。我想听听其他人对此的看法。
设计模型有哪些最佳实践?过去我采用了两种方法:模型应该代表不同的实体,还是应该具有特定于域的(特定于子域?特定于视图?)模型?真正的区别在于表示不同实体的模型用于多个视图中,因为特定领域的模型与特定视图相关联。
考虑以下情况:我的应用程序中有一个用户实体。我应该在 Register 视图、Show 视图、Index 视图等中使用单个 UserModel,还是更喜欢使用 RegisterUserModel、ShowUserModel、ListUserModel 等?
我以前使用过这两种模式。领域特定模型的优势在于,通过属性应用的任何验证逻辑在视图之间都可能不同。不利的一面是你违反了 DRY 并且你的模型变得非常多毛——即使你将它们分成命名空间。相反,使用单一模型到实体模式会导致验证数据过于通用(通常与错误消息有关),但您有一个很好、紧密的模型层,并且模型和实体之间的转换要容易得多(代码更少)。
SO 更喜欢哪种方法?或者有没有我什至没有考虑过的方法?
【问题讨论】:
-
我相信你会从喜欢这两种方式的人那里得到答案。这是相当主观的。
-
讨论不是很有趣吗?
标签: c# asp.net-mvc design-patterns