用于封装谓词的模式/实践

时间:2009-08-12 09:51:06

标签: c# linq design-patterns encapsulation predicate

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

如果你的BLL中有很多集合,并且你发现你一遍又一遍地编写相同的旧内联(匿名)谓词,那么显然有一种封装的情况,但实现这一目的的最佳方法是什么? / p>

我目前正在开发的项目需要很长时间,回答所有的静态类方法(例如User类和静态UserPredicates类),但这看起来有些笨拙而且有点像警察。

我主要在C#工作,所以保持在这种情况下最有帮助,但我认为这是一个通用的问题,值得听取其他语言。

此外,我预计LINQ和Lambdas的出现将如何实现这一点,所以我有兴趣听听如何在.Net2.0和3.0 / 3.5两种风格中实现这一点。< / p>

提前致谢。

2 个答案:

答案 0 :(得分:2)

Specification pattern可能值得一试 有一些多态性&amp;使用泛型它应该有效。

答案 1 :(得分:1)

Predicate实质上只是规范设计模式的一种实现。您可以在Domain-Driven Design中了解规范模式。