我有一个N层应用程序,在这里我使用规范模式.现在,我想提供一些方法来构造客户端代码的规范。必须有几个预定义的选项,如下所示:
这些对象(让我称之为过滤器)不能包含任何逻辑(方法),只包含数据过滤器类型和参数。而且必须有自然的方法在服务器上将它们转换成规范。下面是客户端应该如何看待它的示例:
var serviceClient = new DataModuleService();
var equalFilter = new ContainsFilter<Book>("Title","Lord of the Rings");
var lordOfTheRingBooks = serviceClient.GetBooks(equalFilter);对于所有标准操作也必须有过滤器类型(如等于、大、内、中、中、字符串等),以及将它们与布尔运算符( and,not)组合的方法。
是否有一些模式/标准实践来实现这样的事情?
UPD:任务目前已冻结,我开始认为任务的定义本身存在问题。
发布于 2012-07-17 19:55:09
只是一个高层次的答案-我相信你可以尝试LINQ表达式,它支持所有您提到的逻辑运算符和条件运算符。查看System.Linq.Expressions名称空间以查看可用类型。
有用的链接:
发布于 2012-07-17 19:39:00
你想要做的事情听起来就像Hibernate在用它的标准查询做什么一样。您可以把它们结合起来,但是您想要构建您感兴趣的过滤器。
这不是C#,但是Java和C#是类似的语言,所以也许您可以从那里借用一些想法。
此外,您还可以选择Hibernate在.NET (NHibernate)上的相同的标准查询端口(尽管我并不确切地知道API是否与Java的相同)。
https://stackoverflow.com/questions/11476122
复制相似问题