我猜我们大多数人都必须在某个时候处理这​​个问题,所以我想问这个问题。

当您的BLL中有很多集合时,您发现您一次又一次地编写相同的内联谓词(匿名)谓词,那么显然存在封装的情况,但是实现这种封装的最佳方法是什么?

我目前正在从事的项目采用了古老的方法,可以回答所有静态类方法(例如,User类和静态UserPredicates类),但是似乎有些笨拙,需要一些警惕。

我主要是在C#中工作,因此在这种情况下保持联系将是最有帮助的,但是我认为这是一个足够通用的问题,值得您了解其他语言。

另外,我希望LINQ和Lambdas的问世在实现方式上会有差异,因此我想听听如何在.Net2.0和3.0 / 3.5风格下实现此效果。

提前致谢。

最佳答案

Specification pattern可能值得一试。
通过一些多态性和泛型的使用,它应该可以工作。

关于c# - 封装谓词的模式/实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1265252/

10-13 07:10