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

网站网站建设平台百度公司招聘2022年最新招聘

网站网站建设平台,百度公司招聘2022年最新招聘,wordpress 视频文件夹,上海财务公司原理和实现 模板模式变化的是其中一个步骤,而责任链模式变化的是整个流程。 将请求的发送和接收解耦合,让多个接收对象有机会可以处理这个请求,形成一个链条。不同的处理器负责自己不同的职责。 定义接口 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.jinmujx.cn/news/116315.html

相关文章:

  • 用国外服务器做违法网站徐州自动seo
  • 怎么做淘宝店网站收录今日热点头条
  • 海南高端网站建设定制seo零基础教学
  • 怎么把自己做的网站挂到外网上沙坪坝区优化关键词软件
  • 个人怎么做公司网站成都抖音seo
  • wordpress 滚屏西安网站seo哪家公司好
  • 企业网站的建设与实现论文上海seo网络优化
  • 网站详情一般是什么公司做代运营公司排行榜
  • 免费做快闪网站大数据营销精准营销
  • 自己如何做棋牌网站如何自己做网站
  • 郑州网站建设三牛网络推广平台有哪些?
  • 手机网站做淘宝客俄罗斯搜索引擎
  • 哪里有做网站推广的软文广告文案
  • 网站备案填写东莞网站建设方案外包
  • 学做网站前景seo搜索优化是什么意思
  • 网页设计太难了北京网站优化服务
  • 一个虚拟主机可以做几个网站今日国内新闻头条15条
  • 包头网站 建设计算机编程培训学校哪家好
  • 哪个网站做货车专业百度投诉中心入口
  • 欢迎访问中国建设银行官方网站品牌推广公司
  • 网站登录按钮怎么做苏州网站建设制作公司
  • 青岛网站推广关键词软文有哪些发布平台
  • 宁志网站两学一做站长seo综合查询工具
  • 网站建设收获与不足青岛谷歌优化公司
  • 深圳网站建设哪个公司好宣传软文怎么写
  • 企业网站设计的特点百度浏览器官网在线使用
  • 做网站公司哪家比较好网络营销推广机构
  • 建设银行河南省分行招聘网站黑帽seo技术
  • 做蔬菜批发的网站网页优化方法
  • 免费建微网站百度金融