zoukankan      html  css  js  c++  java
  • 职责链模式例子

    public interface Filter {
        void doFilter(Request request,Response response,FilterChain fc);
    }
    public class FirstFilter implements Filter {
    
        @Override
        public void doFilter(Request request, Response response,FilterChain fc) {
            request.requestStr+="---FirstFilter";
            fc.doFilter(request, response, fc);
            response.responseStr+="---FirstFilter";
        }
    }
    public class SecondFilter implements Filter {
    
        @Override
        public void doFilter(Request request, Response response,FilterChain fc) {
            request.requestStr+="---SecondFilter";
            fc.doFilter(request, response, fc);
            response.responseStr+="---SecondFilter";
        }
    }
    public class FilterChain implements Filter {
        List<Filter> list = new ArrayList<Filter>();
        int index = 0;
    
        public void putChain(Filter filter) {
            list.add(filter);
        }
    
        @Override
        public void doFilter(Request request, Response response, FilterChain fc) {
            if (index == list.size())
                return;
    
            Filter filter = list.get(index);
            index++;
            filter.doFilter(request, response, fc);
        }
    }
    public class Request {
        public String requestStr="request:";
    }
    public class Response {
        public String responseStr="response:";
    }
    public static void main(String[] args) {
             
            Request request=new Request();
            Response response=new Response();
            FilterChain fc=new FilterChain();
            SecondFilter f2=new SecondFilter();
            FirstFilter f1=new FirstFilter();
            fc.putChain(f1);
            fc.putChain(f2);
            fc.doFilter(request, response,fc);
            System.out.println(request.requestStr);
            System.out.println(response.responseStr);
        }

    输出结果如下:

    request:---FirstFilter---SecondFilter
    response:---SecondFilter---FirstFilter

  • 相关阅读:
    2017年3月9日上午学习
    3.17上午
    3.16上午
    3.16下午
    3.15
    2017.3.14
    3.14
    217.3.13上午
    2017.4.7-morning
    2017.4.6-afternoon
  • 原文地址:https://www.cnblogs.com/yehuabin/p/9762514.html
Copyright © 2011-2022 走看看