码迷,mamicode.com
首页 > 其他好文 > 详细

职责链模式例子

时间:2018-10-09 20:37:58      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:return   inter   模式   ide   结果   ons   int   sts   div   

 

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

 

职责链模式例子

标签:return   inter   模式   ide   结果   ons   int   sts   div   

原文地址:https://www.cnblogs.com/yehuabin/p/9762514.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!