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

      

  • 相关阅读:
    HDU--1212大数取模
    欧拉函数
    自制体重转换器
    常用快捷键
    Markdown基本语法
    python全栈开发day50-jquery之ajax、XmlHttpRquest
    python全栈开发day49-jquery的位置信息、事件流、事件对象,事件委托,事件绑定和解绑
    阳历转阴历算法
    python全栈开发day48-jqurey自定义动画,jQuery属性操作,jQuery的文档操作,jQuery中的ajax
    python全栈开发day47-jqurey
  • 原文地址:https://www.cnblogs.com/helingfeng/p/4461859.html
Copyright © 2011-2022 走看看