我有一个 N 层应用程序,我在其中使用规范模式。现在,我想提供一些方法来为客户端代码构建规范。它必须是几个预定义的选项,例如:
- 平等的
- 比...更棒
- 包含
这些对象(让我称之为过滤器)不能包含任何逻辑(方法),只包含数据 - 过滤器类型和参数。并且必须有自然的方式将它们转换为服务器上的规范。这是从客户端看起来应该如何的示例:
var serviceClient = new DataModuleService();
var equalFilter = new ContainsFilter<Book>("Title","Lord of the Rings");
var lordOfTheRingBooks = serviceClient.GetBooks(equalFilter);
所有标准操作(如 Equal、Greater、In、Between、StartsWith 等)都必须有过滤器类型,以及将它们与布尔运算符(and、or、not)组合的方法。
是否有一些模式/标准实践来实现这样的事情?
UPD:任务现在被冻结了,我开始认为任务定义本身有问题。