【问题标题】:What is the difference between DAO and DAL?DAO 和 DAL 有什么区别?
【发布时间】:2010-11-08 08:41:05
【问题描述】:

在学校学习过 Java,我对 DAO 模式非常熟悉 (Data access object)。但是在工作中我使用.NET。在 .NET 中,经常有人谈论 DAL(Data Access Layer)。对我来说,他们的目的似乎很相似。所以问题是DAO和DAL基本上是一回事吗? DAL 一词是否只是为了不与Data Access Objects 混淆而编造的?

【问题讨论】:

  • 我一直认为 DAL 是数据抽象层

标签: dao data-access-layer data-access-object


【解决方案1】:

数据访问层 (DAL) 是存在于业务逻辑层和持久性/存储层之间的系统层。 DAL 可能是单个类,也可能由多个数据访问对象 (DAO) 组成。它可能在顶部有一个外观供业务层与之对话,从而隐藏了数据访问逻辑的复杂性。它可能是第三方对象关系映射工具 (ORM),例如 Hibernate。

DAL 是一个架构术语,DAO 是一个设计细节。

【讨论】:

  • 假设我有一个名为 DAO 的接口,它有一个类似 getCustomer() 的方法。该接口由 SqlServerDAO 类实现。当调用 getCustomer() 时,SqlServerDAO 从 DB 中获取数据,创建并返回客户对象。在这种情况下,DAL 由 DAO 接口和 SqlServerDAO 类组成,对吧?
  • +1 表示“DAL 是一个架构术语,DAO 是一个设计细节。”
【解决方案2】:

一个数据访问层将包含许多数据访问对象。

它的主要作用是将业务逻辑与数据库逻辑和实现解耦。

例如,DAL 可能有一个方法,可以通过一个或多个数据访问对象从多个表、查询或存储过程中检索数据。

对数据库结构、DAO、存储过程甚至数据库类型的更改不应引起业务逻辑的更改,这取决于 DAL 提供的解耦。

【讨论】:

    猜你喜欢
    • 2018-09-05
    • 2014-10-05
    • 2011-05-07
    • 2010-10-04
    • 2016-10-05
    • 2016-12-20
    • 1970-01-01
    • 2021-06-10
    • 2016-04-07
    相关资源
    最近更新 更多