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();
}
4 定义消息处理类MsgProcessor
public class MsgProcessor {
private String msg;
}
main方法调用
public class Main {
}
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树