过滤器模式进阶

发布时间:2021-10-05 00:33:55 阅读:(176)

    过滤器模式进阶

    过滤器模式就是根据某种规则,从一组对象中,过滤掉一些不符合要求的对象的过程。

    与责任模式地联系

    过滤器与责任链的相似之处是处理过程都一环一环地进行,不同之处在于责任链中责任的传递一般会有一定的顺序,而过滤器通常没有这种顺序,所以过滤器比责任链简单。当然,过滤器也可以按照职责模式的方式来实现,这时我们认为每一次的过滤都是一种职责(一个任务),而整个过滤流程是一种特殊的链。

    设计要点

    • 过滤的目标:即要被过滤的对象,通常是一个对象数组
    • 过滤器:负责过滤不需要的对象,一般一个规则对应一个类
    • 过滤器链:即过滤器的集合,负责管理和维护过滤器,用这个对象进行过滤时,它包含的每一个子过滤器都会进行一次过滤。这个类并不总是必要的,但如果有多个过滤器,有这个类将会带来极大的方便。

    优缺点

    优点:

    • 将对象的过滤、校验逻辑抽离出来,降低系统的复杂度
    • 过滤规则可实现重复利用。
      缺点:
      性能较低,每个过滤器对每一个元素都会进行遍历。如果有n个元素,m个过滤器,则复杂度为O(mn)

    应用场景

    • 敏感词过滤、舆情检测
    • 需要对对象列表或数据列表进行核验、审查或预处理的场景
    • 对网络接口的请求和相应进行拦截