4

Ayendeは以前、リポジトリが新しいシングルトンパターンであるという一連の記事を書きました。私はそれらすべてを読みましたが、彼のいくつかの点に同意したと思います。ほとんどの場合、すでにデータベース アクセスを抽象化している 1 つの ORM の使用を抽象化するためだけに存在する数十のリポジトリを持つプロジェクトを目にします。

それらを回避した後、一部の ORM はモックするのが難しいソフトウェア部分であるか、少なくとも EF はそうであるため、UT 用にコードを分離するためにいくつかの問題が発生し始めました。Ayende のプロジェクトのいくつかは、メモリ内データベースを使用してテストされていますが、問題なく動作する場合でも、私はそうしたくありません。

だから、これは私の問題です: 私は何十もの典型的なリポジトリも一般的なリポジトリも持ちたくありませんが、コードを分離する簡単な方法が欲しいです.

現在、リポジトリは UT にのみ役立ちますか?

注: 私はデータベース アクセスについて話しているのであって、リモート サービスのような他の種類のデータ ソースを抽象化することについてではありません。

4

1 に答える 1

5

私にとって、リポジトリ (または DAO) は永続性関連のコードをビジネス ロジック コードから分離するので便利です。

(望ましい) 副作用の 1 つは、ビジネス ロジック コードとデータ アクセス コードの両方のテストがはるかに容易になることです。

もう 1 つの望ましい副作用は、持続性関連のメソッドが複数のビジネス ロジック サービスで簡単に再利用できることです。

于 2012-12-22T23:20:17.520 に答える