码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-28 01:37:41      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

  

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

标签:

原文地址:http://www.cnblogs.com/helingfeng/p/4461859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!