[TOC]
引入问题:
- 论坛中发表文章
- 后台经过信息处理才可以发表或者进入数据库
- 后台过滤、审查(敏感词、黑客代码)
- 过滤动作不确定,以后还可能加各种各样的关键词(关键词得从远程缓存拿)
UML类图
问题解决
- 要选择可拓展性好的设计模式:责任链模式(实现同一接口),保证了chain和chain可以相互连接起来,chain里面可以加chain,就是因为chain实现了Filter接口
- 过滤器模式处理(doFilter、doNext)
- 设计模式的原则:
- 简单问题复杂化
- 封装变化(哪变封装哪)
- 链式编程是一种编程技巧(并不是是链式编程就是责任链模式)return this;
针对引入问题的责任链实现
```java package com.mashibing.dp.cor;
import java.util.ArrayList; import java.util.List;
public class Main { public static void main(String[] args) { // 实体类、过滤器、过滤器链在同一个文件中实现 Msg msg = new Msg(); msg.setMsg(“大家好:),