• 编程内功修炼之设计模式—责任链模式


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

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

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

    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;
    	}
    }
    

      

  • 相关阅读:
    (转)6 个重构方法可帮你提升 80% 的代码质量
    (转)卸载和安装LINUX上的JDK
    (转)一些国外优秀的elasticsearch使用案例
    (转)Redis 集群方案
    (转)理想化的 Redis 集群
    (转)Hprose与WCF在云计算平台Azure上的对决
    (转).NET技术+25台服务器怎样支撑世界第54大网站
    Hbase split的过程以及解发条件
    test
    HTTP和HTTPS详解
  • 原文地址:https://www.cnblogs.com/helingfeng/p/4461859.html
Copyright © 2020-2023  润新知