Repository(资源库)模式

Repository(资源库)

               协调领域和数据映射层,利用类似于集合的接口来访问领域对象

 

定义(来自Martin Fowler的《企业应用架构模式》):

               Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.

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

tabbycat的理解(来源):

1. Repository模式是架构模式,在设计架构时,才有参考价值;

2. Repository模式主要是封装数据查询和存储逻辑

3. Repository模式实际用途:更换、升级ORM引擎,不影响业务逻辑;

4. Repository模式能提高测试效率,单元测试时,用Mock对象代替实际的数据库存取,可以成倍地提高测试用例运行速度。

评估:应用Repository模式所带来的好处,远高于实现这个模式所增加的代码。只要项目分层,都应当使用这个模式。

关于泛型Repository接口(来源):

仅使用泛型Repository接口并不太合适,因为Repository接口是提供给Domain层的操作契约,不同的entity对于Domain来说可能有不同的操作约束。因此Repository接口还是应该单独针对每个Eneity类来定义。

泛型的Repository<T>类仍然用来减少重复代码,只是不能被UserRepository类直接继承,因为这样Delete方法将侵入User类,所以改为在UserRepository中组合一个Repository<T>,将开放给domain可见且又能使用泛型重用的功能委托给这个Repository<T>

Repository与Dal的区别(来源):

Repository是DDD中的概念,强调Repository是受Domain驱动的,Repository中定义的功能要体现Domain的意图和约束,而Dal更纯粹的就是提供数据访问的功能,并不严格受限于Business层。

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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Repository本地库是指位于本地计算机上的存储和管理Java代码的集合。在开发Java应用程序时,通常需要依赖于一些第三方库或框架。为了方便管理和使用这些库,可以将它们下载到本地存储库中。 本地库使用的是Maven或Gradle这样的构建工具。这些工具允许我们在项目的构建配置文件中指定所需的库和版本号。当我们构建项目时,构建工具会自动从中央仓库或者其他远程仓库下载所需的库。一旦下载完成,这些库就被存储在本地库中。 本地库有几个好处。首先,它可以帮助我们解决网络访问的问题。有时,我们可能无法访问远程仓库或者网络连接很慢,这导致我们无法下载所需的库。有了本地库,我们可以在本地计算机上保存并使用这些库,无需依赖于网络。 其次,本地库还可以提高构建的速度。假设我们的项目依赖于很多库,每次构建项目时都需要从远程仓库下载这些库会花费很长时间。有了本地库,这些库只需要下载一次,并在本地存储,下次构建时就不需要再次下载。 最后,本地库还可以帮助我们管理库的版本。当我们在构建配置文件中指定库的版本号时,构建工具会从本地库中查找对应版本的库。这样,我们就可以确保项目在不同环境中使用相同的库版本,避免因为版本不一致而引发的问题。 总之,Java Repository本地库是一个存储和管理Java代码库的地方,它可以帮助我们解决网络访问问题,提高构建速度,并确保库的版本一致。这是Java开发中非常有用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值