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

视频网站的制作教程100个有趣的网站

视频网站的制作教程,100个有趣的网站,微信小程序开发者社区,滨江专业网页制作哪家好之前写代码的时候看到过有审批场景使用了责任链#xff0c;当时大概看了一下代码实现#xff0c;今天终于有时间抽出来梳理一下#xff0c;下面是本文的大纲#xff1a; 使用场景 审批场景的普遍应用 实际案例#xff1a;HttpClient中的责任链模式 责任链模式在事件处理、…之前写代码的时候看到过有审批场景使用了责任链当时大概看了一下代码实现今天终于有时间抽出来梳理一下下面是本文的大纲 使用场景 审批场景的普遍应用 实际案例HttpClient中的责任链模式 责任链模式在事件处理、日志记录和过滤器链中的应用 责任链模式实现方式一代码实现 接口和具体处理器类的设计 处理器类的链式结构 客户端使用责任链的示例 责任链模式实现方式二代码实现简易版 Spring框架的 Order 注解的应用 利用 Order 注解实现的责任链模式 客户端通过构造函数注入实现责任链 HttpClient中的责任链模式之前遇到过 使用场景 查了一下大概的使用场景其实审批场景使用的会比较多我记得自己第一次看到责任链的时候是在看HttpClient的代码的时候用了责任链进行请求体的数据传递只不过当时自己的工程能力还不是特别的完善因此简单看了个大概就略过了今天顺便一起梳理了。 当程序需要使用不同方式处理不同种类请求 而且请求类型和顺序预先未知时 可以使用责任链模式。该模式能将多个处理者连接成一条链。 接收到请求后 它会 “询问” 每个处理者是否能够对其进行处理。 这样所有处理者都有机会来处理请求。 当必须按顺序执行多个处理者时 可以使用该模式。无论你以何种顺序将处理者连接成一条链 所有请求都会严格按照顺序通过链上的处理者。 如果所需处理者及其顺序必须在运行时进行改变 可以使用责任链模式。如果在处理者类中有对引用成员变量的设定方法 你将能动态地插入和移除处理者 或者改变其顺序。 责任链常见的使用场景包括审批流程、事件处理、日志记录、过滤器链等。例如在一个审批流程中不同级别的审批人员可以组成一个责任链每个审批人员处理自己能够处理的审批请求如果自己无法处理则将请求传递给下一个审批人员。这样可以动态地调整审批流程而不需要修改整个系统的代码。 责任链结构 代码实现方式一 先给一个责任链的实现代码思路其实还好有点类似链表的实现方式每一个类尝试去进行处理如果处理不了就交给下一个类每一个类会按照顺序保存下一个类的地址这是不是有点类似于链表的结构当然其实审批流的场景也类似链表的结构什么时候路由到下一个节点什么时候结束这些都可以收敛到类里面。 // 定义处理请求的接口 interface Handler {void handleRequest(Request request); }// 具体处理器类 class ConcreteHandler1 implements Handler {private Handler nextHandler;public void setNextHandler(Handler nextHandler) {this.nextHandler nextHandler;}Overridepublic void handleRequest(Request request) {// 根据具体业务逻辑判断是否能处理请求if (request.getType().equals(Type1)) {System.out.println(ConcreteHandler1处理请求 request.getContent());} else {// 如果不能处理则将请求传递给下一个处理器if (nextHandler ! null) {nextHandler.handleRequest(request);} else {System.out.println(没有处理器能够处理该请求);}}} }class ConcreteHandler2 implements Handler {private Handler nextHandler;public void setNextHandler(Handler nextHandler) {this.nextHandler nextHandler;}Overridepublic void handleRequest(Request request) {if (request.getType().equals(Type2)) {System.out.println(ConcreteHandler2处理请求 request.getContent());} else {if (nextHandler ! null) {nextHandler.handleRequest(request);} else {System.out.println(没有处理器能够处理该请求);}}} }// 请求类 class Request {private String type;private String content;public Request(String type, String content) {this.type type;this.content content;}public String getType() {return type;}public String getContent() {return content;} }// 客户端使用责任链 public class ChainOfResponsibilityExample {public static void main(String[] args) {// 创建具体处理器ConcreteHandler1 handler1 new ConcreteHandler1();ConcreteHandler2 handler2 new ConcreteHandler2();// 设置责任链关系handler1.setNextHandler(handler2);// 创建请求Request request1 new Request(Type1, 请求类型1);Request request2 new Request(Type2, 请求类型2);Request request3 new Request(Type3, 请求类型3);// 客户端提交请求handler1.handleRequest(request1);handler1.handleRequest(request2);handler1.handleRequest(request3);} }代码实现方式二 另外其实还有一个非常简单的实现思路我记得之前自己看到的责任链实现是基于Order注解来实现的找GPT实现了一版当时的代码case示例如下这种实现其实能够解决大部分的问题并且非常的简单 public interface Handler {void handleRequest(Request request); }Component Order(1) public class ConcreteHandler1 implements Handler {Overridepublic void handleRequest(Request request) {System.out.println(ConcreteHandler1处理请求 request.getContent());} }Component Order(2) public class ConcreteHandler2 implements Handler {Overridepublic void handleRequest(Request request) {System.out.println(ConcreteHandler2处理请求 request.getContent());} }Component public class ChainClient {private final ListHandler handlers;Autowiredpublic ChainClient(ListHandler handlers) {this.handlers handlers;}public void executeChain(Request request) {for (Handler handler : handlers) {handler.handleRequest(request);}} }在这个例子中ConcreteHandler1 和 ConcreteHandler2 使用 Order 注解标记了它们的执行顺序。客户端类 ChainClient 通过构造函数注入所有的处理器并按照它们的顺序循环调用 handleRequest 方法从而触发责任链的执行。 HttpClient的责任链 HttpClient 库在内部使用了责任链模式的一种形式。具体而言它采用了拦截器Interceptor机制这是责任链的一种实现方式。 拦截器机制在 HttpClient 中的工作方式如下 请求拦截器 请求拦截器负责在发送之前修改即将发送的 HTTP 请求。它们可以添加头部信息、修改请求方法或在请求上执行其他操作。 响应拦截器 响应拦截器负责在将响应返回给调用者之前处理收到的 HTTP 响应。它们可以从响应中提取信息、处理重定向或在响应上执行其他操作。 执行拦截器 执行拦截器负责执行 HTTP 请求并获取响应。它在整个请求生命周期中扮演了至关重要的角色从请求的创建到响应的处理。 每个拦截器都是责任链的一部分并且链式执行。 写完之后忽然想起了自己之前稍微整理的一版责任链当时大概是刚开始学java的时候整理的自己梳理了一个大概的流程图提供一下跳转链接 https://blog.csdn.net/xiaocaij_icai/article/details/125578282?spm1001.2014.3001.5501
http://www.hkea.cn/news/14425300/

相关文章:

  • 网站被篡改处理手机app播放器
  • 重庆营销型网站开发网站设计的思想
  • 个人网站的版权怎么写电商 网站建设
  • 模板网站如何建站做网站的花费
  • 来宾网站制作公司wordpress 手机验证码插件
  • 如何做网站淘客推广深圳市住房和建设局网站住房
  • 如何更改网站模板苏州企业网站制作设计公司
  • 百度免费网站制作热搜榜上能否吃自热火锅
  • 官方网站建设推广上海医院设计网站建设
  • 河南省建设工程信息网招标公告seo网页优化包括哪些内容
  • 在站点上新建网页wordpress评论框xss
  • 适合服务行业做推广的网站广州10大网站开发
  • 橙色企业网站模板wordpress调分类目录的方法
  • 网站建设对百度推广的影响简洁大方 网站
  • 营业推广做网站优化的协议书
  • 空壳网站清理通知最专业的车网站建设
  • 排名前50名免费的网站网站建设服务8
  • 北京seo服务温州网站建设优化
  • 网站名称有哪些做配单ic去什么网站好
  • 专业seo站长工具全面查询网站wordpress实例站
  • 廊坊住房和城乡建设厅网站dede自适应网站注意事项
  • 网站刷新新前台是什么意思桂林欣梦网络招聘
  • 企业网站建设的成本企业seo外包公司
  • 茂名做网站建设公司软文推广300字
  • 个人网站需要什么内容做图的模板下载网站
  • 网站备案被恶意注销南阳网站推广优化公司
  • 怎么免费建立网站天津网站建设noakj
  • 建设部标准定额研究所网站品牌策划网站推荐
  • 怎么看网站开发的技术怎么建设网站让国外看
  • 做网站经费wordpress 获取文章数