基于过滤器模式的数据过滤示例
一、什么是过滤器
过滤器是由一个或多个条件规则组合而成的数据筛选规则。这和T-SQL语句中的 where 条件的作用是一致的,同样具有 and 和 or 的组合,只不过每一个规则都是一个独立的对象。通过过滤器对象与新条件不断进行组合,直到所有条件都已设置完毕。通过这个过滤器对象,实现对数据进行过滤。
二、示例介绍
本文以 Lambda 表达式实现条件组合,具体请浏览相关lambda表达,及表达式树的相关资料。在组合条件生成过滤器对象过程中,不涉及数据过滤操作,只有当最后通过QueryResult方法传入带有数据的对象,才会通过lambda表达式过滤出符合条件的数据。本文分别简单介绍过滤器和过滤器模式。简单的列表过滤器是由过滤器模式演变已来的,在类中实现了and和or的条件组合方法。滤器模式,则要将 and、or 的条件引入方式,分别写到派生类中实现,通过过滤器对象之间的操作,不断完善过滤器的条件。
三、设计
1、条件对象组合过程
不断将条件对象进行组合,充实条件对象。
2、类设计
简单列表过滤器,AddAnd方法与新的条件生成且关系lambda表达式,AddOr方法与新的条件生成或关系lambda表达式。QueryResult实现数据过滤。