web-dev-qa-db-ja.com

リポジトリパターンの手順説明

誰かが私に.NETのリポジトリパターンを説明してくれますか?.

私はこれが非常に一般的な質問であることを知っていますが、今のところ満足できる答えを見つけていません。

262
Sa Patil

要約として、リポジトリパターンのより広い影響を説明します。オブジェクトの保持方法を知らなくても、すべてのコードでオブジェクトを使用できます。テーブルからオブジェクトへのマッピングを含む永続性に関するすべての知識は、安全にリポジトリに含まれています。

多くの場合、SQLクエリがコードベースに散在していることがわかります。テーブルに列を追加するときは、コードファイルを検索してテーブルの使用方法を見つけなければなりません。変更の影響は広範囲に及んでいます。

リポジトリパターンでは、1つのオブジェクトと1つのリポジトリを変更するだけで済みます。影響は非常に小さいです。

おそらくそれは、なぜあなたがリポジトリパターンを使うのかを考えるのに役立つでしょう。これにはいくつかの理由があります。

  • あなたはあなたのデータアクセスに変更を加えるための単一の場所があります

  • あなたは(通常)一組のテーブルを担当する単一の場所を持っています

  • テストのためにリポジトリを偽の実装に置き換えるのは簡単です - そのため、単体テストに利用可能なデータベースを用意する必要はありません。

たとえば、MySQLを使用していてSQL Serverに切り替えたい場合など、他にも利点があります。ただし、実際にこれを実際に見たことはありません。

188
Fenton

これは良い例です。 C#のリポジトリパターンの例

基本的に、リポジトリはデータがデータベースからどのくらい正確にフェッチ/永続化されているかの詳細を隠します。カバーの下に:

  • 読み取り用に、指定された基準を満たすクエリを作成し、結果セットを返します
  • 書き込みのために、基盤となる永続エンジン(例えばSQLデータベース)にデータを保存させるのに必要なコマンドを発行します。
177
twoflower