责任链模式,建造者模式
1.责任链模式
class Request{ String requset=new String(); } class Response{ String response=new String(); } interface Filter{ void doFilter(Request request,Response response,FilterChain chain); } class Filter1 implements Filter{ @Override public void doFilter(Request request, Response response, FilterChain chain) { request.requset+="责任链1"; System.err.println("责任链1"); chain.doFilter(request,response); response.response+="责任链1"; } } class Filter2 implements Filter{ @Override public void doFilter(Request request, Response response, FilterChain chain) { request.requset+="责任链2"; System.err.println("责任链2"); chain.doFilter(request,response); response.response+="责任链2"; } } class Filter3 implements Filter{ @Override public void doFilter(Request request, Response response, FilterChain chain) { request.requset+="责任链3"; System.err.println("责任链3"); chain.doFilter(request,response); response.response+="责任链3"; } } class FilterChain{ private List<Filter> li=new ArrayList<>(); private int index=0; FilterChain add(Filter filter){ li.add(filter); return this; } void doFilter(Request request,Response response){ if (index>=li.size()) return; Filter filter=li.get(index); ++index; filter.doFilter(request,response,this); } } public class Test { public static void main(String[] args){ FilterChain filterChain=new FilterChain(); filterChain.add(new Filter1()) .add(new Filter2()) .add(new Filter3()); Request request=new Request(); Response response=new Response(); filterChain.doFilter(request,response); System.err.println("request="+request.requset); System.err.println("response="+response.response); } }
2.建造者模式