私が見つけたリポジトリパターンの例はすべて、実装が何らかの形で異なっているようです。以下は、私が主に見つけた2つの例です。
interface IProductRepository
{
IQueryable<Product> FindAll();
}
その後、通常、リポジトリと通信して FindAll() メソッドを呼び出し、文字「s」で始まる製品の検索や特定のカテゴリの製品のフェッチなどの操作を実行する別のレイヤーがあります。
私がよく見つけた他の例では、すべての検索メソッドをリポジトリに入れました
interface IProductRepository
{
IEnumerable<Product> GetProductsInCategory(int categoryId);
IEnumerable<Product> GetProductsStartingWith(string letter);
IEnumerable<PromoCode> GetProductPromoCodes(int productId);
}
どの道を進むことをお勧めしますか? または、お互いの長所/短所は何ですか?
http://martinfowler.com/eaaCatalog/repository.htmlを読んだ私の理解から、最初のアプローチはこれを最もよく反映しているようです?