JiveJdon Community Forums
在线115人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 10 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
robinone

发表文章: 10
注册时间: 2007年08月21日 05:43
DAO和Repository有什么区别 发表: 2007年08月22日 15:31 回复
banq说过DAO和Repository其实是一个东西,我在看JiveJdon3的时候看到Repository把数据库访问委托给了DAO来实现。为什么Repository不直接实现数据库访问呢?他们俩不是一个东西吗?而在很多应用层里都直接使用了DAO而不是Repository,这是为什么?
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:DAO和Repository有什么区别 发表: 2007年08月26日 14:54 回复
现在也有不少新的开源永Repository替代DAO了,Repository封装了DAO,还有一些装配工作,把数据装配成一个完整的对象。如果直接使用Hibernate就无需划分了
Ericx

发表文章: 39
注册时间: 2007年04月16日 18:06
re:DAO和Repository有什么区别 发表: 2007年08月26日 16:33 回复
能 具体说说嘛 ?

我怎么 感觉 Repository是 负责 对象的创建和查询后对象的组装的呢......
为什么要替代Dao呢

总感觉他们的职责是不同的....
Dao只负责CRUD基本操作......而Repository则负责更复杂的对象的查询....可能需要Dao的支持....因而可以持有Dao的引用....可终究他们的职责是不一样的啊...
robinone

发表文章: 10
注册时间: 2007年08月21日 05:43
re:DAO和Repository有什么区别 发表: 2007年08月26日 17:09 回复
>现在也有不少新的开源永Repository替代DAO了,Repository封装了DAO,还有一些装配工作,把数据装配成一个完整的对象。如果直接使用Hibernate就无需划分了

这个意思是Repository关联DAO配合完成操作,还是Repository职责就是DAO的职责?
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:re:DAO和Repository有什么区别 发表: 2007年08月26日 17:30 回复
Repository是对象的仓库,也就是保存对象的地方,这个仓库就是我们普通意义的仓库,一个真正OO系统,业务层是围绕活动的对象进行,活动的对象是从仓库中获取的,也是通过交给仓库进行对象长久保管,也就是持久化意思,说白了,就是保存到数据库。

而DAO则没有如此OO概念,DAO是Data access Object,DAO中有数据概念,还是没有摆脱数据库的影子。

所以,Repository替代DAO,是OO深入的趋势,但是在具体处理中,由于性能或设计不够周到或者一些事情把握不定,DAO还会继续存在一段时间,属于过渡式消失。

Repository和DAO两个概念比较中发现,Repository是相对对象而言,而DAO是相对数据库而言,只要我们还是使用关系数据库保存对象,也可能这两者都同时存在,因为侧重点不一样,但是可以肯定的是,业务层应该直接和Repository打交道,而不是DAO.

以上是我个人认识。
robinone

发表文章: 10
注册时间: 2007年08月21日 05:43
re:DAO和Repository有什么区别 发表: 2007年08月26日 17:43 回复
>但是在具体处理中,由于性能或设计不够周到或者一些事情把握不定,DAO还会继续存在一段时间,属于过渡式消失。

这个意思是不是DAO可以使用DAO缓存代理来提高性能,而Repository不可以直接使用缓存,因为Repository直接使用缓存会使业务层搞的复杂,所以有些要求高性能的设计时是使用Repository调用DAO的代理缓存?

一般情况下Repository有没有接口?
bosslee

发表文章: 20
注册时间: 2007年04月27日 23:26
re:DAO和Repository有什么区别 发表: 2007年08月26日 17:58 回复
To:Bang

您认为的仓库是否有自己寻找对象的能力呢?

打个比方,当仓库被 new 的时候,他是不是要在数据库当中找寻自己的货物(指对象)呢。

然后提供给客户端寻找货物的一种方法或者多种方法。

banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
回复:re:DAO和Repository有什么区别 发表: 2007年08月28日 16:35 回复
>您认为的仓库是否有自己寻找对象的能力呢?
仓库和工厂一般配合在一起使用,工厂用来创建对象,不过是从仓库中。

>这个意思是不是DAO可以使用DAO缓存代理来提高性能,而Repository不可以直接使用缓存

我认为对象缓存放在DAO中不合适,而是在Repository中,Repository=对象工厂+对象缓存+DAO 是这样一个组成。

JiveJdon3中将缓存放在DAO中现在觉得不恰当。以后会更改。
abu

发表文章: 2
注册时间: 2007年08月16日 12:24
回复:回复:re:DAO和Repository有什么区别 发表: 2007年08月30日 16:24 回复
DAO主要的工作是负责对象的存取,不应该将对象的管理放在DAO中。
而Repository除了可以存取对象外,还应包括对对象的管理。
我个人认为:Repository = 对象的管理 + DAO。
对象的管理如:对象缓存,对象在Repository的状态等。
yfzsj

发表文章: 2
注册时间: 2007年07月30日 14:34
re:DAO和Repository有什么区别 发表: 2007年09月06日 09:22 回复
哦,学习中~~呵呵
bosslee

发表文章: 20
注册时间: 2007年04月27日 23:26
re:DAO和Repository有什么区别 发表: 2007年10月02日 10:44 回复
bang我觉得对象工厂不应该在repository里面。

我总觉得从领域服务当中应该有对象工厂创建之后把它存入到Repository当中

比较优雅而且合乎情理。

你觉得呢?
这个主题有 10 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam