您的位置:首页 > 其它

设计模式:责任链

2017-09-24 21:47 169 查看
Java代码  


package com.bjsxt.dp.filter;  

  

public class Main {  

    /** 

     * @param args 

     */  

    public static void main(String[] args) {  

        String msg = "大家好:),<script>,敏感,被就业,网络授课没感觉,因为看不见大家伙儿";  

        MsgProcessor mp = new MsgProcessor();  

        mp.setMsg(msg);  

        FilterChain fc = new FilterChain();  

        fc.addFilter(new HTMLFilter())  

          .addFilter(new SesitiveFilter())  

          ;  

        FilterChain fc2 = new FilterChain();  

        fc2.addFilter(new FaceFilter());  

          

        fc.addFilter(fc2);  

        mp.setFc(fc);  

        String result = mp.process();  

        System.out.println(result);  

    }  

  

}  

------------------------------------------------------------------ 

Java代码  


package com.bjsxt.dp.filter;  

  

public class MsgProcessor {  

    private String msg;  

      

    //Filter[] filters = {new HTMLFilter(), new SesitiveFilter(), new FaceFilter()};  

    FilterChain fc;  

      

    public FilterChain getFc() {  

        return fc;  

    }  

  

    public void setFc(FilterChain fc) {  

        this.fc = fc;  

    }  

  

    public String getMsg() {  

        return msg;  

    }  

  

    public void setMsg(String msg) {  

        this.msg = msg;  

    }  

  

    public String process() {  

          

          

        return fc.doFilter(msg);  

          

          

    }  

}  

------------------------------------------------------------------- 

Java代码  


package com.bjsxt.dp.filter;  

  

public interface Filter {  

    String doFilter(String str);  

}  

--------------------------------------------------------------------- 

Java代码  


package com.bjsxt.dp.filter;  

  

import java.util.ArrayList;  

import java.util.List;  

  

public class FilterChain implements Filter {  

    List<Filter> filters = new ArrayList<Filter>();  

      

    public FilterChain addFilter(Filter f) {  

        this.filters.add(f);  

        return this;  

    }  

      

    public String doFilter(String str) {  

        String r = str;  

        for(Filter f: filters) {  

            r = f.doFilter(r);  

        }  

        return r;  

    }  

}  

Java代码  


package com.bjsxt.dp.filter;  

  

public class HTMLFilter implements Filter {  

  

    @Override  

    public String doFilter(String str) {  

        //process the html tag <>  

        String r = str.replace('<', '[')  

                   .replace('>', ']');  

        return r;  

    }  

  

}  

尚学堂马士兵_设计模式_责任链 http://download.csdn.net/download/scarthr/8336739
下载次数: 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: