关于MVC架构中的Repository模式

关于MVC架构中的Repository模式

http://www.cnblogs.com/dudu/archive/2011/05/25/repository_pattern.html

	个人理解:Repository模式是一个单独的分层,他介于service层和dao层之间,他是采用接口的方式来访问dao层的,并且Repository模式会让servic层在访问dao层时,dao层是不知道的,Repository充当了一个仓库管理员,service层(领域)只需要告诉Repository自己需要什么就可以了,Repository会把东西拿给他


tabbycat的理解(来源):

  1. Repository模式是架构模式,在设计架构时,才有参考价值;
  2. Repository模式主要是封装数据查询和存储逻辑;
  3. Repository模式实际用途:更换、升级ORM引擎,不影响业务逻辑;
  4. Repository模式能提高测试效率,单元测试时,用Mock对象代替实际的数据库存取,可以成倍地提高测试用例运行速度。
    评估:应用Repository模式所带来的好处,远高于实现这个模式所增加的代码。只要项目分层,都应当使用这个模式。
    关于泛型Repository接口(来源):
    仅使用泛型Repository接口并不太合适,因为Repository接口是提供给Domain层的操作契约,不同的entity对于Domain来说可能有不同的操作约束。因此Repository接口还是应该单独针对每个Eneity类来定义。
    泛型的Repository类仍然用来减少重复代码,只是不能被UserRepository类直接继承,因为这样Delete方法将侵入User类,所以改为在UserRepository中 组合一个Repository,将开放给domain可见且又能使用泛型重用的功能委托给这个Repository
    Repository与Dal的区别(来源):
    Repository是DDD(领域驱动)中的概念,强调Repository是受Domain驱动的,Repository中定义的功能要体现Domain的意图和约束,而Dal更纯粹的就是提供数据访问的功能,并不严格受限于Business层。
    使用Repository,隐含着一种意图倾向,就是 Domain需要什么我才提供什么,不该提供的功能就不要提供,一切都是以Domain的需求为核心;而使用Dal,其意图倾向在于我Dal层能使用的数 据库访问操作提供给Business层,你Business要用哪个自己选。换一个Business也可以用我这个Dal,一切是以我Dal能提供什么操 作为核心。

为了构建更加适应未来变化以及更加易于测试的MVC应用程序,你应该考虑使用Repository模式。当你使用Repository模式时,你会创建一个独立的repository类,它包含了所有的数据访问逻辑。
当你创建repository类时,你创建了一个接口,该接口代表着所有由repository类所使用的方法。在你的控制器中,你针对接口编写代码,而不是针对repository。通过这种方式,你以后可以使用不同的数据访问技术来实现repository。

部分解释引用CSDN的大佬,出处找不到了,侵权立删!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值