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

四川城乡建设部网站首页页面设计报告

四川城乡建设部网站首页,页面设计报告,南宁网站建设怎么样,营销型 网站 品牌前言 责任链#xff0c;即将能够处理同一类请求的对象连成一条链#xff0c;所提交的请求沿着链传递#xff0c; 链上的对象逐个判断是否有能力处理该请求#xff0c;如果能则处理#xff0c;如果不能则传递给链上的下一个对象。为了避免请求发送者与多个请求处理者耦合在…前言 责任链即将能够处理同一类请求的对象连成一条链所提交的请求沿着链传递 链上的对象逐个判断是否有能力处理该请求如果能则处理如果不能则传递给链上的下一个对象。为了避免请求发送者与多个请求处理者耦合在一起 将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链 当有请求发生时可将请求沿着这条链传递直到有对象处理它为止。 客户只需要将请求发送到责任链上即可无须关心请求的处理细节和请求的传递过程 所以责任链将请求的发送者和请求的处理者解耦了。责任链是一种对象行为型模式。 1. 责任链中的角色 1.1 抽象处理者 定义一个处理请求的接口包含抽象处理方法和一个后继连接。 1.2 具体处理者 实现抽象处理者的处理方法判断能否处理本次请求如果可以处理请求则处理否则将该请求转给它的后继者。 1.3 客户类 创建处理链并向链头的具体处理者对象提交请求它不关心处理细节和请求的传递过程。 1.4 图示 2. 代码示例 2.1 定义抽象处理者 package com.wanlong.design_pattern.action.chainOfResponsibility;/*** author wanlong* version 1.0* description:* date 2022/9/19 17:39*/ public abstract class Leader {private Leader next;public Leader getNext() {return next;}public void setNext(Leader next) {this.next next;}//处理请求的方法public abstract void handleRequest(int LeaveDays); } 2.2 定义具体处理者 2.2.1 定义具体处理者1 package com.wanlong.design_pattern.action.chainOfResponsibility;/*** author wanlong* version 1.0* description: 班主任责任链节点* date 2022/9/19 17:40*/public class ClassAdviser extends Leader {Overridepublic void handleRequest(int LeaveDays) {if (LeaveDays 2) {System.out.println(班主任批准您请假 LeaveDays 天。);} else {if (getNext() ! null) {getNext().handleRequest(LeaveDays);} else {System.out.println(请假天数太多没有人批准该假条);}}} } 2.2.2 定义具体处理者2 package com.wanlong.design_pattern.action.chainOfResponsibility;/*** author wanlong* version 1.0* description: 系主任责任链节点* date 2022/9/19 17:41*/public class DepartmentHead extends Leader {Overridepublic void handleRequest(int LeaveDays) {if (LeaveDays 7) {System.out.println(系主任批准您请假 LeaveDays 天。);} else {if (getNext() ! null) {getNext().handleRequest(LeaveDays);} else {System.out.println(请假天数太多没有人批准该假条);}}} }2.2.3 定义具体处理者3 package com.wanlong.design_pattern.action.chainOfResponsibility;/*** author wanlong* version 1.0* description: 院长责任链节点* date 2022/9/19 17:41*/ public class Dean extends Leader {Overridepublic void handleRequest(int LeaveDays) {if (LeaveDays 10) {System.out.println(院长批准您请假 LeaveDays 天。);} else {if (getNext() ! null) {getNext().handleRequest(LeaveDays);} else {System.out.println(请假天数太多没有人批准该假条);}}} } 2.3 定义客户类 package com.wanlong.design_pattern.action.chainOfResponsibility;import org.junit.Test;/*** author wanlong* version 1.0* description: 责任链模式调用* date 2022/9/19 17:39*/ public class Client {Testpublic void test() {//组装责任链Leader leader1 new ClassAdviser();Leader leader2 new DepartmentHead();Leader leader3 new Dean();leader1.setNext(leader2);leader2.setNext(leader3);//提交请求leader1.handleRequest(8);}}运行结果 院长批准您请假8天。 3. 总结 3.1 优缺点 3.1.1 优点 由于责任链的创建完全在客户端使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构发送者和接收者也无须拥有对方的明确信息。 增强了系统的可扩展性。可以根据需要增加新的请求处理类满足开闭原则。增强了给对象指派职责的灵活性。当工作流程发生变化可以动态地改变链内的成员或者调动它们的次序也可动态地新增或者删除责任。责任链简化了对象之间的连接。每个对象只需保持一个指向其后继者的引用不需保持其他所有处理者的引用这避免了使用众多的 if 或者 if···else 语句。责任分担。 每个类只需要处理自己该处理的工作不该处理的传递给下一个对象完成明确各类的责任范围符合类的单一职责原则 3.1.2 缺点 不能保证每个请求一定被处理。由于一个请求没有明确的接收者所以不能保证它一定会被处理该请求可能一直传到链的末端都得不到处理。对比较长的职责链请求的处理可能涉及多个处理对象系统性能将受到一定影响。职责链建立的合理性要靠客户端来保证增加了客户端的复杂性可能会由于职责链的错误设置而导致系统出错 如可能会造成循环调用。 3.2 使用场景 有多个对象可以处理一个请求哪个对象处理该请求由运行时刻自动确定。动态指定一组对象处理请求或添加新的处理者。在不明确指定请求处理者的情况下向多个处理者中的一个提交请求。 3.3 常见框架使用 Java中异常机制就是一种责任链模式。 一个try可以对应多个catch当第一个catch不匹配类型则自动跳到第二个catch。Javascript语言中事件的冒泡和捕获机制。Servlet开发中过滤器的链式处理Struts2中拦截器的调用也是典型的责任链模式流程引擎activiti ,camunda通过流程控制业务流转shiro 过滤器链 3.4 注意事项 3.4.1 模式的扩展 职责链模式存在以下两种情况 纯的职责链模式 一个请求必须被某一个处理者对象所接收且一个具体处理者对某个请求的处理只能采用以下两种行为之一自己处理承担责任把责任推给下家处理。不纯的职责链模式 允许出现某一个具体处理者对象在承担了请求的一部分责任后又将剩余的责任传给下家的情况且一个请求可以最终不被任何接收端对象所接收。 以上本人菜鸟一枚如有问题请不吝指正。
http://www.w-s-a.com/news/280781/

相关文章:

  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1
  • 爱网站查询怎么做网站的图片跳转
  • 阿里云建站百度收录吗北京的设计公司排名
  • 网站制作方案包含哪些内容布吉网站建设方案
  • 吉林省建设安全信息网站宜宾市建设工程质量监督站网站
  • 镇江网站建设远航网络帝国cms 网站地图 自定义
  • 金融网站模板源代码net网站是国际域名吗
  • 北京高端网站建设价格企业网络托管公司
  • 规范门户网站建设没有网站可以做域名解析吗
  • pc 手机网站源码织梦网站修改教程视频教程
  • 江苏省建设厅副厅长网站济南网络建站模板
  • 工信部网站备案举报做网站竞争大吗
  • 网站建设经费管理注册了域名怎么做网站
  • 哪个着陆页网站福田做网站的公司
  • 网站备案完成后该如何做宁波公司网站建设价格
  • 标识标牌网站怎么做手机网站开发session
  • 怎样建设网站是什么样的广州做和改版网站的公司
  • 世界网站制作帮助做职业规划的网站
  • wordpress 查看站点ppt素材大全免费图片
  • 网站做弹幕广告有什么兼职做it的网站
  • 什么公司做网站出名广州做外贸网站公司
  • 源码网站取名企业网站怎么做百度
  • 织梦网站如何打通百度小程序深圳网站设计灵点网络品牌
  • 做网站网关备案展厅设计风格
  • 唐山网站建设费用网站title优化
  • 网站建设公司做销售好不好海南在线新闻中心
  • title 镇江网站建设wordpress 获取用户密码