仕様パターンを把握しようとしていて、少し混乱しています。特定の要件に役立つとは思えませんでした。複雑な仕様の拡張メソッドを好む場合、何が問題なのか知りたいですか? 例えば
public static class ProductExtensions
{
public static IQueryable<Product> InStocks(this IQueryable<Product> query)
{
return query.Where(p => p.InStock && !p.IsDeleted /*others goes here*/);
}
}
仕様化パターンを使用する代わりに、拡張メソッドで長い仕様をラップすると役立つことがわかりました。これの何が問題なのですか?