在设计模式不清楚的情况下,学习各种框架不仅难学懂,也难理解,即使理解也不够深刻。
为了走更远的路,从基础抓起,每天坚持前进一小步!
虽然即将毕业,虽然路途很远,没有梦想何必远方!
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;
}
}