您的位置:首页 > 编程语言 > Java开发

java责任链模式1

2016-05-26 16:20 274 查看
1 : 定义Filter接口

public interface Filter {

String doFilter(String str);

}

2 定义实现

public class FaceFilter implements Filter {

@Override

public String doFilter(String str) {

return str.replace(“:)”, “^V^”);

}

}

public class HTMLFilter implements Filter {

@Override

public String doFilter(String str) {

//process the html tag <>

String r = str.replace(‘<’, ‘[‘)

.replace(‘>’, ‘]’);

return r;

}

}

public class SesitiveFilter implements Filter {

@Override

public String doFilter(String str) {

// process the sensitive words

String r = str.replace(“����ҵ”, “��ҵ”).replace(“����”, “”);

return r;

}

}

定义FilterChain

public class FilterChain implements Filter {

List filters = new ArrayList();

public FilterChain addFilter(Filter f) {
this.filters.add(f);
return this;
}

public String doFilter(String str) {
String r = str;
for(Filter f: filters) {
r = f.doFilter(r);
}
return r;
}


}

4 定义消息处理类MsgProcessor

public class MsgProcessor {

private String msg;

//Filter[] filters = {new HTMLFilter(), new SesitiveFilter(), new FaceFilter()};
FilterChain fc;

public FilterChain getFc() {
return fc;
}

public void setFc(FilterChain fc) {
this.fc = fc;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public String process() {

return fc.doFilter(msg);

}


}

main方法调用

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
String msg = "��Һ�:)��<script>�����У�����ҵ�������ڿ�û�о�����Ϊ��������һ��";
MsgProcessor mp = new MsgProcessor();
mp.setMsg(msg);
FilterChain fc = new FilterChain();
fc.addFilter(new HTMLFilter())
.addFilter(new SesitiveFilter());
FilterChain fc2 = new FilterChain();
fc2.addFilter(new FaceFilter());

fc.addFilter(fc2);
mp.setFc(fc);
String result = mp.process();
System.out.println(result);
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java