web-dev-qa-db-ja.com

DAOとDALの違いは何ですか?

Javaを勉強したことで、DAOパターン( データアクセスオブジェクト )にかなり精通しています。ただし、職場では.NETを使用しています。NETでは、 DAL( Data Access Layer )について話します。私にとってそれらの目的は非常に似ているように思われます。問題はDAOとDALは基本的に同じものですか?DALという用語は単に構成されているので、 Data Access Objects と混同される

44
simoraman

データアクセスレイヤー(DAL)は、ビジネスロジックレイヤーと永続性/ストレージレイヤーの間に存在するシステムのレイヤーです。 DALは単一のクラスである場合と、複数のデータアクセスオブジェクト(DAO)で構成される場合があります。ビジネスレイヤーがやり取りするファサードが上部にあり、データアクセスロジックの複雑さを隠しています。これは、Hibernateなどのサードパーティのオブジェクトリレーショナルマッピングツール(ORM)である可能性があります。

DALはアーキテクチャ用語であり、DAOは設計の詳細です。

65
Matt Howells

データアクセス層には、多くのデータアクセスオブジェクトが含まれます。

主な役割は、ビジネスロジックをデータベースロジックおよび実装から切り離すことです。

たとえば、DALには、1つ以上のデータアクセスオブジェクトを介して複数のテーブル、クエリ、またはストアドプロシージャからデータを取得する単一のメソッドがある場合があります。

データベース構造、DAO、ストアドプロシージャ、さらにはデータベースタイプの変更によってビジネスロジックが変更されることはありません。これは、DALが提供する分離によるものです。

15
ChrisBD