10

PersonRepository など、特定のエンティティのすべての永続化ロジックをカプセル化するリポジトリ クラスを作成しても、そのリポジトリ クラスが Unit of Work パターンまたは Identity Map パターンを実装していない場合、それは依然としてリポジトリと見なされますか? つまり、Unit of Work と Identity Map はリポジトリの実装に必要ですか? それとも、永続化ロジックをカプセル化する任意のクラスをリポジトリと呼ぶことができますか?

一つ付け加えておきたい。リポジトリがこれらのパターンを必要とせず、永続化メソッドの単なるコンテナである場合、リポジトリと DAO (データ アクセス オブジェクト) の違いは何ですか? 同じオブジェクトに対して複数の名前を作成しているだけですか、それともリポジトリが本来あるべきものの一部が欠けているのでしょうか?

4

4 に答える 4

3

はい、それはまだリポジトリです。

リポジトリ==DAOの場合、リポジトリはビジネスロジック層にあり、DAOはデータアクセス層にある必要があります。つまり、それらは異なる層にあると思います。私が理解しているように、リポジトリはDAOメソッドを呼び出してデータをロードおよび永続化します。

于 2009-04-24T19:29:45.883 に答える
3

リポジトリと作業単位のパターンは直交していると思います。

非常に頻繁に、単一の作業単位が複数のリポジトリの操作にまたがるようにする必要があるため、その実装は上位層に属します。

于 2009-04-28T12:00:32.573 に答える
1

関心の分離を検討するときは、リポジトリにデータストレージの実装メソッドがあり、それをメインコードから除外できることを忘れないでください。これは、単体テストだけでなく、最終的にデータストレージ実装を完全にスワップアウトする場合にも役立ちます(データストレージ実装の例は、ASP.NETのLINQ-to-SQLです)。

于 2009-05-12T19:50:39.120 に答える
1

Sii が言ったことに基づいて構築します -リポジトリと作業単位が関連していない方が良いように思えます。関心の分離?

于 2009-04-28T12:09:13.550 に答える