2010-09-02 36 views
1

是否有一个名称为软件设计模式,涉及MVC域模型和视图模型?这是在使用像AutoMapper这样的工具时使用的模式。什么是使用域模型和视图模型(也称为AutoMapper)与MVC的设计模式名称

我试图向一些同行的程序员解释这种设计的优点,并将其称为MVVM,但我现在认为这是不正确的,MVVM模式是视图阶段正在改进它的模型自己的目的,而不是改变控制器和视图之间传递的内容。

当然,所有人都会对M和V的数量感到困惑,而不是被困在更多的节点上,我想我会问专家。

回答

0

“相关”的问题与之交互的最佳答案我想我要为我提供得到。

设计模式在文章How we do MVC – View models中定义得相当好,相应的monica似乎是MVC-ViewModels或MVC-VM。

2

它被称为MVC。不,认真。您网站的模型恰好被称为ViewModels。

MVC不说什么模式应该是,它应该只是如何与M和C.

+0

我同意这种方法确实符合MVC模式,但它是一种微妙而重要的改进,它对我能够贴上标签会非常有帮助。 – sipwiz 2010-09-03 00:05:26

+0

为什么不只是MVC视图模型? – jfar 2010-09-03 00:27:24

+0

没有理由不使用这个或任何其他的替代品我只是想看看是否有东西被广泛使用。现在VMVC或(V)MVC或M(VM)VC或MVC(VM)它确实有点傻,但至少在我的情况下,MVC和MVC(VM)之间的差异可能是每页请求100次额外的数据库往返传输,所以我想要了解概念和传达的方式。 – sipwiz 2010-09-03 00:52:51

2

正如您可能已经阅读或体验过使用Automapper来映射对象一样。说到MVC,V(View)和C​​(Controller)非常清晰。 M(Model)模糊了许多人的观点。 MVC并不强调如何构建模型。您可以通过运行直接的SQL查询或使用ORM工具(如NHibernate或LINQ2SQL或您选择的实体框架)来构建模型。

如果你真的想分开担忧,你可以前进一步,做大多数人的工作。您可以引入存储库模式来处理可以使用服务检索的模型数据。在这种情况下,Automapper会进入你需要映射实体和Dto的画面。

我不认为有任何需要削减这种从服务层建模的方法。正常的MVC在这种情况下也是有效的:)