2009-08-12 15 views
3

私はほとんどの人がこれをある時点で処理しなければならないと思っています。述語をカプセル化するためのパターン/プラクティス

BLLにたくさんのコレクションがあり、同じ古いインライン(匿名)述語を何度も書いていることが分かっている場合は、カプセル化のケースがはっきりしていますが、それを達成する最も良い方法は何ですか?

私が現在取り組んでいるプロジェクトは古くからすべての静的なクラスのアプローチ(例:Userクラスと静的UserPredicatesクラス)​​に似ていますが、それはやや重い手渡しのようです。

私はC#で作業していますので、その文脈を維持することが最も役立ちますが、これは他の言語についての聴聞会を保証するのに十分な一般的な質問です。

また、LINQとLambdasの出現によってこれがどのように達成されるのかに違いがあると思いますので、.Net2.0と3.0/3.5スタイルの両方でこれがどのように行われるのか興味があります。

ありがとうございます。

答えて

2

Specification patternはチェックアウトする価値があります。
一部の多型で&ジェネリックの使用がうまくいくはずです。

+0

あなたはまずあなたにポイントと名声を与えました。 – Stimul8d

+0

私はそれが助けてくれることを願っています。 –

1

述語は基本的に仕様設計パターンの単なる実装です。あなたはDomain-Driven Designの仕様パターンについて読むことができます。

+0

本のリンクをありがとうございました。まだ別のものがウィッシュリストに追加されています! – Stimul8d

+0

その本は、DDDが始まったときには大変だと思っていることを強くお勧めします。あなたの希望リストに追加する:http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202 –

関連する問題