这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。
这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。
举例:
场景:中国移动有很多营销活动,而参加这些营销活动的对象是有要求的,有的需要判断在网时长,有的需要有最低套餐要求等。
实现:制定不同的规则来对一组对象进行过滤,然后对过滤结果进行分组。
目标角色:中国移动客户
过滤器角色:不同营销活动的要求
过滤器模式包含如下两个角色:
(1) AbstractFilter(抽象过滤器角色):定义过滤的方法。
(2) ConcreteFilter(具体滤器角色):实现过滤的方法,对目标对象集合进行逻辑过滤,最后再返回一个过滤后的集合。
(3) Subject(被过滤角色):目标角色,源数据,具体过滤器会对其进行逻辑处理。
共同学习,共同进步,若有补充,欢迎指出,谢谢!