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

济宁网站定制公司舆情报告

济宁网站定制公司,舆情报告,host绑定网站,大气网站模板下载原理和实现 模板模式变化的是其中一个步骤,而责任链模式变化的是整个流程。 将请求的发送和接收解耦合,让多个接收对象有机会可以处理这个请求,形成一个链条。不同的处理器负责自己不同的职责。 定义接口 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.tj-hxxt.cn/news/51378.html

相关文章:

  • 做的网站一直刷新收录优美的图片
  • 微信网站开发模板网络营销推广要求
  • 开发手机app需要学什么知识seog
  • 那可以做网站百度手机关键词排名工具
  • vps如何做网站步骤电商运营培训大概多少学费
  • 中英双语网站优化清理大师
  • 网站跳出厦门seo测试
  • 秦皇岛做网站多少钱百度刷seo关键词排名
  • 稳定的网络建站咨询电话百度自动点击器
  • 龙岩e网站淘宝数据分析工具
  • 网站空间和云服务器大兵seo博客
  • 经验分享的网站开发批量关键词调排名软件
  • 做网站框架显示不出来十大最免费软件排行榜
  • 支付通道网站怎么做短视频精准获客
  • 柳州做网站设计的公司新网站排名优化怎么做
  • 网站开发公司多少钱友情链接交换要注意哪些问题
  • 常熟港口建设费申报网站鹤壁seo
  • 西安专业做网站的公司有哪些自己做seo网站推广
  • 在Vs中做网站接口谷歌自然排名优化
  • 伪类网站企业网络营销策略分析案例
  • 青之峰做网站海外推广代理公司
  • 制作网页时不能选用的照片格式优化大师下载安装免费
  • 北京度seo排名广州百度搜索排名优化
  • 如何提高网站打开速度百度推广系统营销平台
  • 公司做网站有什么用竞价开户
  • 常州经开区建设局网站站内优化怎么做
  • 哪一个网站做专栏作家好点企业网络推广方案
  • 南京html5网站建设百度站长工具seo查询
  • asp语言网站建设seo专员
  • 如何判断一个网站的价值免费大数据查询