首页 > 其他 > 详细

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

时间:2015-04-28 01:34:38      阅读:200      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!