我猜我们大多数人都必须在某个时候处理这个问题,所以我想问这个问题。
当您的BLL中有很多集合时,您发现您一次又一次地编写相同的内联谓词(匿名)谓词,那么显然存在封装的情况,但是实现这种封装的最佳方法是什么?
我目前正在从事的项目采用了古老的方法,可以回答所有静态类方法(例如,User类和静态UserPredicates类),但是似乎有些笨拙,需要一些警惕。
我主要是在C#中工作,因此在这种情况下保持联系将是最有帮助的,但是我认为这是一个足够通用的问题,值得您了解其他语言。
另外,我希望LINQ和Lambdas的问世在实现方式上会有差异,因此我想听听如何在.Net2.0和3.0 / 3.5风格下实现此效果。
提前致谢。
最佳答案
Specification pattern可能值得一试。
通过一些多态性和泛型的使用,它应该可以工作。
关于c# - 封装谓词的模式/实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1265252/