import java.util.ArrayList;
import java.util.List;
/**
* 责任链模式
* ChainOfResponsibility
* @author Lei
* @version create time:2009-8-31 下午08:07:00
*/
public class Main {
public static void main(String[] args) {
String msg = "dd大家好L:)<script>,敏感,补就业,网络课没感觉,因为年不到大家";
MsgProcessor mp = new MsgProcessor();
mp.setMsg(msg);
FilterChain fc = new FilterChain();
fc.addFilter(new HTMLFilter())
.addFilter(new SesitiveFilter());
mp.setFc(fc);
String string = mp.process();
System.out.println(string);
}
}
class MsgProcessor {
private String msg;
// Filter[] filters = {new HTMLFilter(), new SesitiveFilter()};
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() {
String r = msg;
r = fc.doFilter(r);
return r;
}
}
interface Filter {
String doFilter(String string);
}
class HTMLFilter implements Filter {
@Override
public String doFilter(String string) {
String r = string.replace('<', '[').replace('>', ']');
return r;
}
}
class SesitiveFilter implements Filter {
@Override
public String doFilter(String string) {
String r =string.replace("网络课", "wangLuo");
return r;
}
}
class FilterChain {
List<Filter> filters = new ArrayList<Filter>();
public FilterChain addFilter(Filter f) {
this.filters.add(f);
return this;
}
public String doFilter(String string) {
String r = string;
for(Filter f: filters) {
r = f.doFilter(r);
}
return r;
}
}