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

  • 相关阅读:
    九.GPIO中断试验3——GPIO中断驱动
    十.定时器EPIT——1EPIT的入门
    九.GPIO中断试验1——中断原理
    九.GPIO中断试验2——通用中断服务程序构成
    Django学习笔记〇六——项目2,图书管理系统
    博客项目——〇六 添加新文章——富文本编辑器、beautifulsoup的使用
    1月7日
    1月9日
    1月8日
    Scala泛型和上下界
  • 原文地址:https://www.cnblogs.com/yehuabin/p/9762514.html
Copyright © 2011-2022 走看看