当前位置: 首页 > 面试题库 >

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

上官和惬
2023-03-14
问题内容

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


问题答案:

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

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

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

同样,a
Repository通常是较窄的接口。它应该是简单对象的集合,有Get(id)Find(ISpecification)Add(Entity)

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

看到称为a的实现确实看起来Repository更像a DAO,这确实很常见,因此我认为它们之间的差异有些混乱。



 类似资料:
  • 问题内容: 我想在不同节点上的2个应用程序之间共享会话;但是,我很困惑Cookie和Redis会话存储之间的区别是什么;例如Cookie会话可能如下所示: 在Redis中,一个会话存储可能看起来像这样: 但是,我很困惑如何共享这些会话。在cookie方法中,请求包含会话的状态,而我看不到Redis中的会话实际上如何匹配到2个应用程序之间的状态。有什么建议如何在2个机架应用程序之间使用Redis /

  • 问题内容: 谁能解释工厂模式与策略模式之间的差异? 对我来说,除了一个额外的工厂类(它们以工厂模式创建产品的对象)外,两者看起来都一样 问题答案: 工厂模式是一种创造模式。战略模式是一种运营模式。换句话说,工厂模式用于创建特定类型的对象。策略模式用于以特定方式执行一个操作(或一组操作)。在经典示例中,工厂可能会创建不同类型的动物:狗,猫,老虎,而策略模式将执行特定的动作,例如,移动;使用“跑步”,

  • 我是一个全新的Docker和正在学习入门教程。在第7步,它说 键入命令并按Return。该命令列出本地系统上的所有映像。您应该在列表中看到。 但第一列清楚地表示“存储库”,而不是例如“图像名称”。我还在别人的机器上注意到,因为一个图像可以有多个标记,所以这个列表经常包含重复的条目--每个标记一个。那么这是一个图像列表,一个存储库列表,一个图像-标签组合列表还是其他什么呢?映像和存储库有什么区别?

  • 问题内容: 我知道一个API称为一组用于调用某些东西的函数,一个库是一个类的集合,但是像这样的包中的API实际上是什么?我可以在不使用任何API的情况下连接到类似的类,那么为什么我们称其为J2SE API而不是J2SE软件包? 问题答案: 直接来自维基百科: 在计算机科学中,应用程序编程接口(API)是定义应用程序可以从库请求服务的方式的接口 Java在那些软件包中包含许多库(Swing等),而A

  • 问题内容: 在MySQL数据库上下文中,以下3个术语有什么区别: 存储过程 存储功能 存储例程 像那些日期时间功能(例如等)之类的内置功能也被认为是什么? 问题答案: Google是您的朋友。“ mysql例程功能过程”的第一个匹配项是:http : //dev.mysql.com/doc/refman/5.0/en/stored-routines- syntax.html 快速总结: 存储的例程

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型