链表设计模式
public interface Filter {String doFilter(String str);}public class FaceFilter implements Filter {@Overridepublic String doFilter(String str) {String r = str.replace(":)", "^V^");return r;}}public class HTMLFilter implements Filter {public String doFilter(String str) {String r = str.replace('<', '[') .replace('>', ']');return r;}}public class SesitiveFilter implements Filter {@Overridepublic String doFilter(String str) {String r = str.replace("被就业", "就业") .replace("敏感", "mingan");return r;}}import java.util.ArrayList;import java.util.List;public class FilterChain implements Filter{List<Filter> filters = new ArrayList<Filter>();public FilterChain addFilter(Filter filter){this.filters.add(filter);return this;}public String doFilter(String str){String r = str;for(Filter f : filters){r = f.doFilter(r);System.out.println(f);}return r;}} public class MsgProcessor {private String msg;FilterChain fc;public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public FilterChain getFc() {return fc;}public void setFc(FilterChain fc) {this.fc = fc;}public String process(){return fc.doFilter(msg);}} public class Main {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString 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);}}
?