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

徐州网站建设网络推广贵阳关键词优化平台

徐州网站建设网络推广,贵阳关键词优化平台,wap网站如何做,网站开发技术现状原理和实现 模板模式变化的是其中一个步骤,而责任链模式变化的是整个流程。 将请求的发送和接收解耦合,让多个接收对象有机会可以处理这个请求,形成一个链条。不同的处理器负责自己不同的职责。 定义接口 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.dinnco.com/news/29715.html

相关文章:

  • 网站栏目管理建设百度seo原理
  • 企业网站建设的好处网络营销策划方案框架
  • 网站空间可以通过什么获取随州seo
  • 中创高科官方网站fifa最新排名出炉
  • 158百事通做网站是诈骗吗网络营销策划书的结构
  • 哈尔滨做网站企业杭州小程序建设公司
  • 自己的卡盟网站怎么做分站江苏疫情最新消息
  • 网站开发完整项目案例关键词挖掘网站
  • 如何做盗版网站百度搜索关键词排名
  • 传销公司做网站什么罪名微信推广怎么弄
  • 深圳市设计师服务平台seo软件优化工具软件
  • 深圳wordpress外贸网站建设网站建设优化公司
  • led外贸网站制作网优工程师前景和待遇
  • 大连信联科技做的网站怎么样厦门关键词优化网站
  • 兼职做网站赚钱吗他达拉非什么是
  • 公司建设网站费用会计怎么记怎么让网站被百度收录
  • 百度开发平台seo免费外链工具
  • xampp怎么做网站搜索引擎seo关键词优化效果
  • 动态网站的滚动图片怎么做文案代写收费标准
  • 刚做的网站怎么才能搜索到百度竞价推广公司
  • 网页版梦幻西游地宫迷阵攻略seo店铺描述
  • 环保网站案例b2c有哪些电商平台
  • wordpress网站密码网络营销的整体概念
  • mindmanager网站建设流程图今天的新闻头条最新消息
  • 网站建设分金手指专业四5188关键词挖掘工具
  • 点点网 wordpress关键词优化推广排名多少钱
  • 昭通昭阳区城乡建设管理局网站情感网站seo
  • 网站制作与网页建设如何免费注册网站平台
  • 优秀个人主页欣赏seo算法是什么
  • 免费注册b2b网站seo岗位培训