责任链模式

来源:互联网 发布: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实现2
public 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
原创粉丝点击