责任链模式
来源:互联网 发布:mac相簿批量删除照片 编辑:程序博客网 时间:2024/04/30 02:49
客户端
public class Main {public static void main(String[] args) {String msg = "=_=,I'm sorry,I cannot do this!fuck it!=_=,fuck";FilterChain filterChain = new FilterChain();filterChain.add(new CharFilter()).add(new SensitiveFilter());Request request = new Request();request.setMsg(msg);Response response = new Response(); filterChain.doFilter(request, response, filterChain); System.out.println("requestMsg:"+request.getMsg());System.out.println("responseMsg:"+response.getResponseMsg());}}
public interface Filter {
void doFilter(Request request,Response response,FilterChain filterChain);}
public class CharFilter implements Filter{@Overridepublic void doFilter(Request request, Response response,FilterChain filterChain) {String msg = request.getMsg().replace('=', '^')+"----CharFilter";request.setMsg(msg);filterChain.doFilter(request, response, filterChain);String returnMsg = response.getResponseMsg()+"-----CharFilter";response.setResponseMsg(returnMsg);}}Filter实现2public class SensitiveFilter implements Filter{ @Overridepublic void doFilter(Request request, Response response,FilterChain filterChain) {String msg = request.getMsg().replace("fuck", "****")+"-----SensitiveFilter";request.setMsg(msg);filterChain.doFilter(request, response, filterChain);String returnMsg = response.getResponseMsg()+"-----SensitiveFilter";response.setResponseMsg(returnMsg);}}FilterChain链,实现回调public class FilterChain implements Filter{private List<Filter> list = new ArrayList<Filter>();private int index = 0;public FilterChain add(Filter filter){list.add(filter);return this;}public FilterChain remove(Filter filter){if(list.contains(filter)){list.remove(filter);}return this;}@Overridepublic void doFilter(Request request, Response response,FilterChain filterChain) {if(index >= list.size()) return;Filter filter = list.get(index);index++;filter.doFilter(request, response, filterChain);}}Request,Response里面包含一个String 属性
0 0
- 责任链模式
- 深入浅出责任链模式
- 责任链模式
- 责任链模式
- 深入浅出责任链模式
- 责任链模式(一)
- 责任链模式(二)
- 责任链模式(三)
- 责任链模式
- java责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- c++ 责任链模式
- java责任链模式
- 责任链模式
- 寒假第二天--线性表--数据结构实验之链表一:顺序建立链表
- 如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN
- Python介绍及视频教程
- Android ART运行时无缝替换Dalvik虚拟机的过程分析
- 11111 - Generalized Matrioshkas
- 责任链模式
- C++的函数指针
- JDeveloper IDE 12C 版本 运行页面报500错误 没有值"netscape" 的枚举常量
- libevent使用ndk-r8d编译
- 寒假第二天--线性表--数据结构上机测试2-2:单链表操作B
- 软件性能调优系列--知识点1
- 数据结构实验之链表三:链表的逆置
- 7bit 编码
- 同时运行两个脚本