3

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

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

我目前正在从事的项目采用古老的、回答所有的、静态类方法(例如 User 类和静态 UserPredicates 类),但这似乎有点笨拙,有点逃避。

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

此外,我预计随着 LINQ 和 Lambdas 的出现如何实现这一点会有所不同,所以我很想知道如何在 .Net2.0 和 3.0/3.5 样式中实现这一点。

提前致谢。

4

2 回答 2

2

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

于 2009-08-12T10:04:55.433 回答
1

谓词本质上只是规范设计模式的一种实现。您可以阅读领域驱动设计中的规范模式。

于 2009-08-12T10:05:17.463 回答