zoukankan      html  css  js  c++  java
  • 编程内功修炼之设计模式—责任链模式

    在设计模式不清楚的情况下,学习各种框架不仅难学懂,也难理解,即使理解也不够深刻。

    为了走更远的路,从基础抓起,每天坚持前进一小步!

    虽然即将毕业,虽然路途很远,没有梦想何必远方!

    package edu.designpattern.chainofresponsibility;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.junit.Test;
    /**
     * 责任链设计模式
     * 模型练习
     * 
     * @author helingfeng
     * 编写日期:2015/04/28
     **/
    
    //过滤器接口
    interface Filter {
    	public String doFilter(String result);
    }
    /**责任链设计模式**/
    public class FilterChain implements Filter{
    
    	//责任链上所有过滤器
    	List<Filter> filters = new ArrayList<Filter>();
    	
    	//利用责任链进行操作
    	public String doFilter(String str) {
    		String result = str;
    		for(Filter filter : filters){
    			result = filter.doFilter(result);
    		}
    		return result;
    	}
    	
    	//责任链进行初始化
    	public FilterChain addFilter(Filter f){
    		this.filters.add(f);
    		return this;
    	}
    	
    	//测试
    	@Test
    	public void test(){
    		String str = "<a>我是异常信息</a>";
    		FilterChain chain = new FilterChain();
    		HTMLFilter htmlFilter = new HTMLFilter();
    		KeysFilter keysFilter = new KeysFilter();
    		chain.addFilter(htmlFilter).addFilter(keysFilter);
    		System.out.println(chain.doFilter(str));
    	}
    }
    /**HTML 过滤器实现
     * 
     * 将含<>标签信息转化为[]
     * **/
    class HTMLFilter implements Filter{
    
    	//对接口进行实现
    	public String doFilter(String result) {
    		result = result.replaceAll("<", "[").replaceAll(">", "]");
    		return result;
    	}
    }
    /**KEY 关键字过滤器实现
     * 将设定的关键字进行更替
     **/
    class KeysFilter implements Filter{
    	
    	String[] keys = {"错误","异常","失败"}; 
    	
    	//对接口进行实现
    	public String doFilter(String result) {
    		for(String key : keys){
    			result = result.replaceAll(key, "正常");
    		}
    		return result;
    	}
    }
    

      

  • 相关阅读:
    Javascript的私有变量和方法、共有变量和方法以及特权方法、构造器、静态共有属性和静态共有方法
    Spring4整合Hibernate4出现的错误的解决
    Javascript类的创建
    Kettle学习总结(一)
    Kettle Excel导入数据到数据库
    Python 爬虫 2 (转)
    Js仿腾讯微博效果
    飘雪效果
    列表获取对应图片
    飞入购物车
  • 原文地址:https://www.cnblogs.com/helingfeng/p/4461859.html
Copyright © 2011-2022 走看看