模型和域和存储库本质上是一回事吗?MVC范例中的模型,域,存储库和服务之间有什么区别?
4
A
回答
5
号
从它所包含的库区分域模型的第一种方式是认为一个程序存储库做什么。
本质上,存储库只是封装了一大块数据访问代码,以这种方式暴露给定的接口,以便程序员可以轻松地交换不同的存储方法,例如,独立于数据库问题测试其他代码。
相比之下,域模型包含给定应用程序的所有必需的存储库。因此,它显然是一个非常不同的野兽。
更大的野兽。
域模型还将包含其他代码和类,例如通过控制器传递给视图的模型(在MVC范例中)。
一派思想认为领域模型应该在它自己的类库中。这个思想流派反对在默认的MVC项目中使用Model文件夹。我同意这一点,通常删除它。
域模型建模一个域。它与传递给每个视图的模型截然不同,它只是表示视图需要的数据,而不是模拟包含存储库和服务等的给定业务问题。
我认为你的问题是一个很好的一个是因为它解决了一个很容易让人困惑的问题,如果你不知道背后的想法。
首先,鸡还是鸡蛋?答:也没有。首先是什么问题。
DDD:
这些概念是领域驱动设计,这与其说是对给定的技术实现约一套关于如何规范需要翻译成的理解和复杂的领域建模指南中的一部分软件。
关于MVC的一个很棒的事情是它允许你使用域驱动设计之类的东西。相比之下,在ASP.NET webforms中,当尝试应用良好的设计原则时,您会受到更多的限制。也就是说,MVC允许您设计您的应用程序,以便将域的表示封装在MVC的M位中。
在这一天结束的时候,由M位走多远取决于你。它可以在Models文件夹中,也可以将其重构为自己的类库,并将其重构为您的内容,实现DDD最佳实践或其他任何您想要的内容。
1
他们不是。这些都是Domain Driven Design方法论的全部内容。第一次介绍将是this free e-book。
HTH!
托马斯
相关问题
- 1. 存储库和服务之间的区别?
- 2. Web服务和Windows服务之间有什么区别?
- 3. 服务,模型和存储库层之间的交互
- 4. 段,卷和分区有什么区别?(在存储域中)
- 5. 存储库模式和视图模型模式之间的区别
- 6. Doctrine 2中的代理,存储库和服务有什么区别?
- 7. MVC模式中的模型和实体有什么区别?
- 8. 存储过程和视图之间有什么区别?
- 9. MVC模型,数据和数据库有什么区别?
- 10. WCF和RIA服务域服务类有什么区别?
- 11. 在Azure存储服务中使用Blob存储服务REST API和StorageClient类库创建Container有什么区别?
- 12. 分布式和分散式服务之间有什么区别?
- 13. 控制器和服务之间有什么区别?
- 14. 请求,响应和服务器之间有什么区别?
- 15. cakephp - 模型和行为之间有什么区别?
- 16. “域名”和“非域名”cookies之间有什么区别?
- 17. ASP.NET MVC中的ASP.NET控件和Html.helpers之间有什么区别?
- 18. ASP.NET MVC中的string.Format和TagBuilder之间有什么区别?
- 19. MVC模型1和模型2有什么区别?
- 20. 程序和存储过程sql服务器之间的区别?
- 21. Maven中存储库和依赖项之间的区别是什么?
- 22. ASP.NET MVC:在ActionFilterAttribute类中,OnActionExecuted和OnResultExecuted之间有什么区别?
- 23. HBase:区域服务器和QuorumPeer之间的区别
- 24. MVC和MVVM之间的区别和相似之处是什么?
- 25. 重新模块中的组和组之间有什么区别?
- 26. 消息传递和共享内存并发模型之间有什么区别?
- 27. SQLite中UDF和保存的查询之间有什么区别?
- 28. dpm()和dsm()之间有什么区别?
- 29. @dynamic和@synthesize之间有什么区别?
- 30. vbNullString和“”之间有什么区别吗?
正如其他人所说,他们不是。但是,它们都是MVC中“M”层的一部分。 – 2010-10-06 12:38:09