我猜我们大多数人都必须在某个时候处理这个问题,所以我想我会问这个问题。
如果你的BLL中有很多集合,并且你发现你一遍又一遍地编写相同的旧内联(匿名)谓词,那么显然有一种封装的情况,但实现这一目的的最佳方法是什么? / p>
我目前正在开发的项目需要很长时间,回答所有的静态类方法(例如User类和静态UserPredicates类),但这看起来有些笨拙而且有点像警察。
我主要在C#工作,所以保持在这种情况下最有帮助,但我认为这是一个通用的问题,值得听取其他语言。
此外,我预计LINQ和Lambdas的出现将如何实现这一点,所以我有兴趣听听如何在.Net2.0和3.0 / 3.5两种风格中实现这一点。< / p>
提前致谢。
答案 0 :(得分:2)
Specification pattern可能值得一试 有一些多态性&amp;使用泛型它应该有效。
答案 1 :(得分:1)
Predicate实质上只是规范设计模式的一种实现。您可以在Domain-Driven Design中了解规范模式。