加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – MVC范例中的模型,域,存储库和服务有什么区别?

发布时间:2020-12-16 06:43:46 所属栏目:asp.Net 来源:网络整理
导读:模型,域和存储库基本上是一回事吗? 解决方法 没有. 区分域模型与其包含的存储库的第一种方法是考虑存储库的作用. 从本质上讲,存储库只是封装了一大块数据访问代码,以这种方式暴露给定的接口,以便程序员可以轻松地交换不同的存储方法,例如,独立于数据库问题
模型,域和存储库基本上是一回事吗?

解决方法

没有.

区分域模型与其包含的存储库的第一种方法是考虑存储库的作用.

从本质上讲,存储库只是封装了一大块数据访问代码,以这种方式暴露给定的接口,以便程序员可以轻松地交换不同的存储方法,例如,独立于数据库问题测试其他代码.

相比之下,域模型包含给定应用程序的所有必需存储库.因此,很明显它是一个非常不同的野兽.

一个更大的野兽.

域模型还将包括其他代码和类,例如通过控制器传递给Views的模型(在MVC范例中).

一派思想坚持认为域模型应该在自己的类库中.这种思想反对在默认的MVC项目中使用Model文件夹.我同意这一点,通常会将其删除.

域模型为域建模.它与传递给每个视图的模型不同,它实际上只代表视图所需的数据,而不是对给定的业务问题进行建模,包含存储库和服务等.

我认为你的问题是一个很好的问题,因为它解决了一个很容易被混淆的问题,如果你不了解它们背??后的想法.

首先是鸡肉还是鸡蛋?答:都没有.首先是问题.

DDD:

这些概念是领域驱动设计的一部分,它不是关于给定的技术实现,而是关于如何标准化需要转换为软件的复杂域的理解和建模的一套指南.

MVC的一大优点是它允许你使用像Domain Driven Design这样的东西.相比之下,在ASP.NET webforms中,在尝试应用良好的设计原则时,您会受到更多限制.

即,MVC允许您设计您的应用程序,以便将域的表示封装在MVC的M位中.

在一天结束时,由你来到M位有多远.它可以只在Models文件夹中,或者你可以将它重构到它自己的类库中,并根据你的内容重构它,实现DDD最佳实践或你想要的任何其他.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读