`

关于Repository模式

    博客分类:
  • C#
阅读更多

Repository模式:

网上说Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。Repository是仓库管理员,领域层需要什么东西只需告诉仓库管理员,由仓库管理员把东西拿给它,并不需要知道东西实际放在哪。

 

使用该模式的最大好处就是将领域模型从客户代码和数据映射层之间解耦出来。

 

其实我们可以把它理解为DAL层,但又与DAL层有一定的区别,RepositoryDDD中的概念,强调Repository是受Domain驱动的,Repository中定义的功能要体现Domain的意图和约束,而DAL层更纯粹的就是提供数据访问的功能,并不严格受限于Business层。

 

使用Repository,隐含着一种意图倾向,就是 Domain需要什么我才提供什么,不该提供的功能就不要提供,一切都是以Domain的需求为核心;而使用DAL,其意图倾向在于我DAL层能使用的数据库访问操作提供给Business层,你Business要用哪个自己选。换一个Business也可以用我这个DAL,一切是以我DAL能提供什么操作为核心

 

这里再简单说说Core里的Service文件,它相对Repository是处理一些复杂一点的业务逻辑,而Repository所提供的功能是相对比较单一的,比如添加用户,Repository就是操作数据库保存操作,而Service则会先进行一系列的逻辑判断,是否存在该用户的,再调用Repository里的保存用户操作。

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics