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>,敏感,补就业,网络课没感觉,因为年不到大家";
Request request = new Request();
request.setRequeString(msg);
Response response = new Response();
response.setResponseString("response");
FilterChain fc = new FilterChain();
fc.addFilter(new HTMLFilter())
.addFilter(new SesitiveFilter());
fc.doFilter(request, response);
System.out.println(request.getRequeString());
System.out.println(response.getResponseString());
}
}
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 {
void doFilter(Request request, Response response);
}
class HTMLFilter implements Filter {
@Override
public void doFilter(Request request, Response response) {
request.requeString = request.requeString.replace('<', ']').replace('>', ']');
}
}
class SesitiveFilter implements Filter {
@Override public void doFilter(Request request, Response response) {
request.requeString = request.requeString.replace("就业", "jiuye");
}
}
class FilterChain implements Filter {
List<Filter> filters = new ArrayList<Filter>();
public FilterChain addFilter(Filter f) {
this.filters.add(f);
return this;
}
@Override
public void doFilter(Request request, Response response) {
for(Filter f: filters) {
f.doFilter(request, response);
}
}
}
class Response {
String responseString;
public String getResponseString() {
return responseString;
}
public void setResponseString(String responseString) {
this.responseString = responseString;
}
}
class Request {
String requeString;
public String getRequeString() {
return requeString;
}
public void setRequeString(String requeString) {
this.requeString = requeString;
}
}