DAO パターンとリポジトリ パターンの違いは何ですか? 質問する

DAO パターンとリポジトリ パターンの違いは何ですか? 質問する

データ アクセス オブジェクト (DAO) とリポジトリ パターンの違いは何ですか? インフラストラクチャとして Enterprise Java Beans (EJB3)、Hibernate ORM、設計手法としてドメイン駆動設計 (DDD) とテスト駆動開発 (TDD) を使用してアプリケーションを開発しています。

ベストアンサー1

DAOデータの永続性の抽象化です。オブジェクトのコレクション
Repositoryの抽象化です。

DAOデータベースに近いと考えられ、多くの場合テーブル中心です。
Repositoryドメインに近いと考えられ、集約ルートのみを扱います。

Repository'sを使用して実装することもできますDAOが、その逆は行いません。

また、 は一般的に、より狭いインターフェースです。 、、をRepository含む、単純なオブジェクトのコレクションである必要があります。Get(id)Find(ISpecification)Add(Entity)

のようなメソッドUpdateは には適していますDAOが、 には適していませんRepository。 を使用する場合Repository、エンティティへの変更は通常、別の UnitOfWork によって追跡されます。

Repository実際には に近い実装が と呼ばれているのをよく見かけますDAOが、そのため、それらの違いについて混乱が生じているように思います。

おすすめ記事