学习日记-责任链设计模式
来源:互联网 发布:广东域名 编辑:程序博客网 时间:2024/05/22 04:45
------- android培训、java培训、期待与您交流! ----------
责任链设计模式:都说面向对象挺难的,所以我专门请教了朋友一下关于如何学习面向对象的方法,朋友建议我看一下设计模式方面的东西,于是我就开始了学习设计模式,下面是我学习的一些心得:首先是责任链设计模式:我理解的责任链就是将一些需要处理的事件装到一个容器里,要被处理的事件从该容器里穿过之后,出来之后就已经完成了一串的处理过程!像这样的例子我首先想到的就是过滤器,下面是一个小例子://实现给出一字符串我们将其中的敏感词汇,和一些html信息进行处理//定义filter接口,面向接口编程有比较好的扩展性package com.bj.filter;public interface Filter {void doFilter(Request request,Response response,FilterChain chain);}//定义处理链条的类package com.bj.filter;import java.util.ArrayList;public class FilterChain implements Filter{ArrayList<Filter>filters=new ArrayList<Filter>();int index=0;public FilterChain addFilter(Filter f){ filters.add(f); return this;}@Overridepublic void doFilter(Request request, Response response, FilterChain chain) {// TODO Auto-generated method stubif(index==filters.size())return;Filter f=filters.get(index);f.doFilter(request,response,chain);index++;}}//定义几个filter的实现类,package com.bj.filter;//处理html信息的类public class HtmlFilter implements Filter {@Overridepublic void doFilter(Request request, Response response, FilterChain chain) {// TODO Auto-generated method stubrequest.requestStr=request.getRequestStr().replace("<", "[").replace(">", "]");chain.doFilter(request,response,chain);response.setReponseStr("hahhaha");}}//处理敏感词汇的类package com.bj.filter;public class SensitiveFilter implements Filter{@Overridepublic void doFilter(Request request,Response response,FilterChain chain) {// TODO Auto-generated method stubrequest.requestStr=request.getRequestStr().replace("敏感", "haha");chain.doFilter(request, response, chain);response.getReponseStr().replace("haha", "hehe");}}//定义请求类package com.bj.filter;public class Request {String requestStr;public String getRequestStr() {return requestStr;}public void setRequestStr(String requestStr) {this.requestStr = requestStr;}}//定义应答类package com.bj.filter;public class Response {String reponseStr;public String getReponseStr() {return reponseStr;}public void setReponseStr(String reponseStr) {this.reponseStr = reponseStr;}}//定义处理方式的类package com.bj.filter;import java.util.ArrayList;import com.bj.filter.*;public class MsgProcessor {private String msg;//Filter[] filters={new HtmlFilter(),new SensitiveFilter()};private 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 str){String r = null;//r=fc.doFilter(str);return r;}public void setFc(FilterChain fc2) {// TODO Auto-generated method stubthis.fc=fc2;}}//下面是测试类package com.bj.filter;import java.util.ArrayList;public class Main {public static void main(String[] args) {String msg="大记号:)<sad>敏感";Request request=new Request();request.setRequestStr(msg);Response response=new Response();response.setReponseStr("response");FilterChain fc=new FilterChain();fc.addFilter(new HtmlFilter());fc.doFilter(request, response, fc);System.out.println(request);System.out.println(response);}}上边的程序开始执行后会将给出的字符串中的敏感词汇给替换掉。------- android培训、java培训、期待与您交流! ----------
- 学习日记-责任链设计模式
- 设计模式实例学习-责任链模式
- 设计模式学习--责任链模式
- 设计模式学习笔记--责任链模式
- 学习设计模式-责任链模式
- 责任链设计模式
- 责任链设计模式
- 设计模式---责任链
- 责任链设计模式
- 设计模式----责任链
- 设计模式-责任链
- 责任链设计模式
- 责任链设计模式
- 设计模式:责任链
- [设计]责任链模式
- 设计模式--责任链
- 责任链设计模式
- php核心学习-设计模式的学习-责任链模式
- 初学python的一个小例子
- javascript 正侧表达式
- java 数组强转 ClassLoader
- hdu 1978 How many ways
- alsa架构音频分析总结
- 学习日记-责任链设计模式
- Spring3 报org.aopalliance.intercept.MethodInterceptor
- AGPS(辅助全球卫星定位系统)
- 编译uboot出错warning: target CPU does not support interworking
- Android杂谈--打开文件的Intent及使用
- 学数学的一些建议
- http://my.oschina.net/ryanhoo/blog/93801
- Deep Learning(深度学习)学习笔记整理系列之(一)
- iOS解析HTML