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

一般需要多少钱石家庄seo代理

一般需要多少钱,石家庄seo代理,兰州快速seo整站优化招商,一站式建站价格责任链的介绍 责任链模式是一种对象的行为模式。在责任链模式里#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 在责任链模式当中客户端只用执行一次流程开始的请求便不再需要参与到流程执行当中责任链上的流程便能够自己一直往下执行客户端同样也并不关心执行流程细节从而实现与流程之间的解耦。 责任链的结构 责任链模式需要有以下几个角色 抽象处理器Handler处理器抽象接口定义了处理请求的方法和执行下一步处理的处理器具体处理器ConcreteHandler执行请求的具体实现先根据请求执行处理逻辑完成之后将请求交给下一个处理器执行调用者调用者通过创建处理器并将请求交给处理器进行处理 Java实现 Context是全部参数用于在各个处理器中流转。 Data Builder public class Context {private String name;private String type; } Handler抽象的处理器定义了执行和判断是否需要执行的接口。 public interface Handler {void execute(Context context, HandlerChain chain);default boolean skip(Context context) {return false;} }NameHandler用来处理参数中的name属性 AutoService(Handler.class) public class NameHandler implements Handler {Overridepublic void execute(Context context, HandlerChain chain) {System.out.println(name: context.getName());chain.execute(context);}Overridepublic boolean skip(Context context) {if (name1.equals(context.getName())) {return true;}return false;} }TypeHandler用来处理参数中的type属性 AutoService(Handler.class) public class TypeHandler implements Handler {Overridepublic void execute(Context context, HandlerChain chain) {System.out.println(type: context.getType());chain.execute(context);} }HandlerChain用于封装处理器链条提供执行入口。 public class HandlerChain {private int index;private final ListHandler handlers;HandlerChain(ListHandler handlers) {this.handlers handlers;}public void execute(Context context) {if (this.index handlers.size()) {Handler handler handlers.get(this.index);boolean skip handler.skip(context);if (skip) {this.execute(context);}else {handler.execute(context, this);}}}}测试效果 public class ChainTest {public static void main(String[] args) {ServiceLoaderHandler serviceLoader ServiceLoader.load(Handler.class);ListHandler handlers StreamSupport.stream(serviceLoader.spliterator(), false).collect(Collectors.toList());HandlerChain handlerChain new HandlerChain(handlers);Context context Context.builder().name(name).type(type).build();handlerChain.execute(context);HandlerChain handlerChain1 new HandlerChain(handlers);Context context1 Context.builder().name(name1).type(type1).build();handlerChain1.execute(context1);} }控制台输出 name: name type: type type: type1name属性是name1的context是不需要NameHandler处理的。
http://www.w-s-a.com/news/654692/

相关文章:

  • 网站域名更换相应内容网站策划 要求
  • 百盛联合建设集团网站开发网站的步骤
  • php做网站评价网络公司经营范围可以加技
  • 网站积分的作用保定专业网站建设
  • 莆田做网站公司电话如何提升网站访问速度
  • 网站开发流程步骤 口袋网页访问wordpress
  • 湘潭做网站的公司自助建站教程
  • 做网站推广和头条推广wordpress 验证密码错误
  • 淘宝联盟网站怎么做深圳市创想三维科技有限公司
  • 校园网站建设招标公告php网站开发什么
  • 06628 网页制作与网站开发陕西省交通建设网站
  • 做wish如何利用数据网站暗红色网站
  • 企业 网站备案 法人长春建站模板搭建
  • 网站做快照网站改版 升级的目的
  • 自己做一个网站要多少钱海外推广什么意思
  • 郑州做网站哪家专业网络基础知识大全
  • 济南制作网站企业php 调试网站
  • 互联网站管理工作细则做网站通栏模糊
  • 徐州手机网站开发公司电话青岛有名的互联网公司
  • 如何在手机做网站wordpress 网站搬迁
  • 网站透明导航代码国外卖货平台有哪些
  • 张家界网站建设方案中国网页设计师
  • 淮南网站建设服务东莞营销型手机网站建设
  • 常德做网站专业公司河南高端网站建设
  • 网站服务器建设的三种方法会展设计ppt
  • 如何把自己做的网站放到内网seo优化网络
  • 北京网站建设net2006厦门优化公司
  • 制作网页前为什么要建立站点菏泽百度网站建设
  • 做影视网站引流网页美工设计课程教案
  • 响应式网站开发流程图网站优化seo教程