小编典典

DAO 和存储库模式有什么区别?

all

数据访问对象 (DAO) 和存储库模式有什么区别?我正在使用 Enterprise Java Beans (EJB3)、Hibernate ORM
作为基础架构以及域驱动设计 (DDD) 和测试驱动开发 (TDD) 作为设计技术来开发应用程序。


阅读 123

收藏
2022-03-11

共1个答案

小编典典

DAO数据持久性* 的抽象。 是对象集合
Repository的抽象。
*

DAO将被认为更接近数据库,通常以表为中心。
Repository将被认为更接近域,仅处理聚合根。

Repository可以使用DAO‘s 来实现,但你不会做相反的事情。

此外,aRepository通常是较窄的界面。它应该是一个简单的对象集合,带有Get(id), Find(ISpecification),
Add(Entity)

类似的方法Update适用于 a DAO,但不适用于 a Repository- 当使用 a
Repository,对实体的更改通常由单独的 UnitOfWork 跟踪。

Repository看到称为 a 的实现实际上更像是 a似乎很常见DAO,因此我认为它们之间的区别存在一些混淆。

2022-03-11