質問: Wikipediaによると、仕様パターンでは、ブールロジックを使用してビジネスロジックをチェーン化することで、ビジネスロジックを再結合できます。リストまたはコレクションからフィルターオブジェクトを選択することに関しては、動的LINQを使用して同じことを実行できるように思えます。何か不足していますか?考慮すべき仕様パターンの他の利点はありますか? --- 編集: LINQと仕様パターンの組み合わせについて説明する投稿をいくつか見つけました。 Linq仕様プロジェクト Niqloas BlumhardtによるLinqを介した仕様パターンの実装(Autofacおい) 誰かがこの道を進んだことはありますか?それを維持するのは複雑になりましたか?
回答: 動的LINQは文字列式を使用して、動的クエリの構築を可能にします。したがって、実際には型の安全性は失われます。密接に関連する具体化のデコレータパターンのようなラッパーパターンを使用するのに対し、仕様パターンでは、コードの型安全性を維持できます。クエリを再利用して動的に構築するために、デコレータパターンをクエリラッパーとして使用することを検討します。コードプロジェクトに関する記事は、 Linq Query Wrappersにあります。 または、私のブログをチェックしてください 。