当前位置: 首页 > news >正文

碑林网站制作导航网站开发

碑林网站制作,导航网站开发,网站定制公司报价,网站建设中html页面原理和实现 模板模式变化的是其中一个步骤,而责任链模式变化的是整个流程。 将请求的发送和接收解耦合,让多个接收对象有机会可以处理这个请求,形成一个链条。不同的处理器负责自己不同的职责。 定义接口 public interface Filter {/*** …

原理和实现

模板模式变化的是其中一个步骤,而责任链模式变化的是整个流程。
将请求的发送和接收解耦合,让多个接收对象有机会可以处理这个请求,形成一个链条。不同的处理器负责自己不同的职责。

定义接口

public interface Filter {/***  执行过滤方法* @param request* @param response* @param filterChain*/void doFilter (Request request, Response response,FilterChain filterChain);
}

定义职责链
通过内部一个链表 将职责链添加到对应的链表中

public class FilterChain implements Filter{private static List<Filter> filterList = new LinkedList<>();private Filter myFilter;private static int filterIndex = 0;/*** 添加一个职责工作链* @param filter*/public void addFilter (Filter filter) {filterList.add(filter);}public void addMyFilter (Filter filter) {myFilter = filter;}@Overridepublic void doFilter(Request request, Response response, FilterChain filterChain) {if (filterIndex < filterList.size()) {Filter filter = filterList.get(filterIndex);filterIndex++;filter.doFilter(request,response,filterChain);} else {myFilter.doFilter(request,response,filterChain);}}
}
public class HttpFilter implements Filter{@Overridepublic void doFilter(Request request, Response response, FilterChain filterChain) {System.out.println("httpFilter before...");filterChain.doFilter(request,response,filterChain);System.out.println("httpFilter after...");}
}
public class MyFilter implements Filter{@Overridepublic void doFilter(Request request, Response response, FilterChain filterChain) {System.out.println("MyFilter before...");System.out.println("hahaha 我是中间执行人");System.out.println("MyFilter after...");}
}
public class EncodingFilter implements Filter{@Overridepublic void doFilter(Request request, Response response, FilterChain filterChain) {System.out.println("EncodingFilter before...");filterChain.doFilter(request,response,filterChain);System.out.println("EncodingFilter after...");}
}
	public static void main(String[] args) {FilterChain filterChain = new FilterChain();Filter httpFilter = new HttpFilter();Filter encodingFilter = new EncodingFilter();Filter myFilter = new MyFilter();filterChain.addFilter(httpFilter);filterChain.addFilter(encodingFilter);filterChain.addMyFilter(myFilter);filterChain.doFilter(new Request(),new Response(),filterChain);}

其实不管是模板模式、策略模式、职责链模式 本质都是为了提高代码的拓展性、应对代码的复杂性,并且如果新增一个过滤器,那么只需要进行拓展、也满足开闭原则。

在实际的工作中,需要考虑什么场景下符合,就采用对应的设计模式,而不要乱用。

servlet中Filter就是职责链的体现。

http://www.yayakq.cn/news/478703/

相关文章:

  • 深圳龙华区偏僻吗人员优化是什么意思
  • 网站开发价格多少网站内容优化怎么去优化呢
  • wordpress友情链接美化北京官网seo收费
  • 北京微信网站搭建费用桂林漓江自由行攻略
  • 顺企网官网电话搜索引擎优化排名关键字广告
  • 美容行业培训网站建设阿里巴巴网站建设的态度虚心
  • win7优化大师官方网站国外购物网站欣赏
  • 官方网站建设银行信用卡网站建设技术方案模板
  • 网站建设中++模板当今做哪个网站能致富
  • 网站需求怎么做怎么建公司官网
  • 网站服务器和空间的区别柳州做网站人员
  • 智能开关网站开发具体流程三台移动网站建设
  • 企业网站建设与管理试题网站建设 英文怎么说
  • 建站平台 在线提交表格网站排名下降怎么办
  • 陇南做网站网站建设哪个最好
  • 四川网站制作昆明网站建设报价
  • 云购物网站建设山东百度推广代理商
  • 读网站建设一定要买电脑实践吗陕西西乡网站建设
  • 对单位网站的要求wordpress已经上传图片加水印
  • 宁波网站推广优化公司莆田企业免费建站
  • 网站建设 图纸网溧水区城乡建设局网站
  • 如何做网站网站的教程随意设计一个网站
  • 百度收录最新方法seo工具
  • 掘金网站建设被官方认可赚钱软件
  • 织梦网站更改主页链接网站代运营公司排名
  • 如何看一个网站是用哪个语言做的商丘专业做网站公司
  • 设计型网站网站地址栏小图标
  • PHP开源网站开发系统仿网站制作教学视频教程
  • 泉州晋江网站建设费用做网站申请什么商标
  • 成都 网站建设 app 开发怎么做网站然后卖出去