2016-06-15 3 views
2

は、リポジトリパターンは、基本的に、データアクセスをカプセル化するために使用されるリポジトリオブジェクトの層である:例えばリポジトリパターンのバリエーションは?次のURLに基​​づいて

http://martinfowler.com/eaaCatalog/repository.html

、UserRepository目的は、このようなGetUsers()メソッドを持っているでしょう

public User GetUsers() 
{ 
    return context.Users; 
} 

リポジトリパターンにすべてがあるのですか、それともそれ以上ありますか?このパターンには名前が変わっていますか?たとえば、私は過去にこのパターンがエンティティのジェネリック/ダイナミックCRUDを含むと主張した人に遭遇したと思います。例えば、CRUDは基本的かつ反復可能なパターンであるため、リポジトリパターンは任意の/すべてのエンティティに対してCRUD機能を動的に提供する。私は次のように推測します:new Repository()。Read()。リポジトリパターンのこのバリエーションの名前はありますか?

答えて

0

リポジトリパターンは、単に特定のデータストレージの実装から切り離すことです。 CRUDは絶対にその傘の下に収まり、一般的にそうです。

最も重要なことは、どの操作がどのビジネスオブジェクトに必要かを正確に判断することです。すべてのCRUD操作を公開する必要はありません。

ここでは、標準リポジトリパターン実装のサンプルコードを使ったかなり良い記事です。 YMMV。 http://www.codeproject.com/Articles/526874/Repository-pattern-done-right

+0

ありがとうございました。私は私の投稿に書かれている他のパターンの名前を知っていますか?:var users = new Repository ().ReadAll()リポジトリパターンは最高ではないかもしれませんが、それを説明する方法。要約すると、この実装は、すべてのエンティティが一般的な/繰り返し可能なCRUDメソッドの特定のサブセットを共有するという事実に基づいています。 – user6411982

+0

ReadAll()またはGetAll()は依然としてRepository Patternの傘の下に収まります。 GetWhere(Predicate)などのクエリパラメータを持つメソッドにも適合できます。 –

+0

私の最後のコメントに関しては、誰かがこの実装に関連するより正式なデザインパターンを特定できない限り、私は単に「動的リポジトリ」パターンと呼んでいます – user6411982

関連する問題