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

罗湖网站设计多少钱平面设计创意网站建设

罗湖网站设计多少钱,平面设计创意网站建设,做网站如何挂支付系统,作文网站网址大全1.什么是责任链 责任链模式#xff08;Chain of Responsibility Pattern#xff09;是一种行为设计模式#xff0c;它允许多个对象有机会处理请求#xff0c;从而避免请求的发送者和接收者之间的耦合关系。每个收到请求的对象要么处理该请求#xff0c;要么将它传递给链中…1.什么是责任链 责任链模式Chain of Responsibility Pattern是一种行为设计模式它允许多个对象有机会处理请求从而避免请求的发送者和接收者之间的耦合关系。每个收到请求的对象要么处理该请求要么将它传递给链中的下一个对象。   责任链模式的优点 降低耦合度: 发送者无需知道请求的接收者是谁也不需要知道请求如何被处理。接收者也不需要知道其他接收者的存在。 增强给请求的处理灵活性: 可以动态地增删处理者。处理者可以根据条件决定是否处理请求。 简化了对象: 请求的发送者和接收者之间无需建立直接联系。 责任链模式的缺点 可能导致难以调试: 如果链很长可能会导致难以追踪请求的处理过程。 可能不易于维护: 当链的结构变得复杂时维护起来可能比较困难。 2.使用场景 责任链的使用场景还是比较多的 多条件流程判断权限控制 ERP 系统流程审批总经理、人事经理、项目经理 Java 过滤器的底层实现 Filter 多级审批如报销审批、请假申请等。 异常处理不同类型的异常可以被不同的处理者捕获和处理。 过滤器在网络通信中多个过滤器可以处理同一个请求或响应。 如果不使用该设计模式那么当需求有所改变时就会使得代码臃肿或者难以维护例如下面的例子。 3.反例 假设现在又一个审批流程进入下一个审批流程的条件是当前审批流程审批通过 组长审批通过--主管审批通过--项目经理审批通过 那么代码可以这样写 //第一步 public class GroupLeaderHandler {public Boolean handler(){System.out.println(第一步--GroupLeaderHandler);return true;} }//第二步 public class ManagerHandler {public Boolean handler(){System.out.println(第二步--ManagerHandler);return true;} }//第三步 public class ProjectManagerHandler {public Boolean handler(){System.out.println(第三步--ProjectManager这是最后一步啦);return true;} }//客户端 publicclass HandlerClient {public static void main(String[] args) {GroupLeaderHandler groupLeaderHandler new GroupLeaderHandler();ManagerHandler managerHandler new ManagerHandler();ProjectManagerHandler projectManagerHandler new ProjectManagerHandler();boolean groupLeaderFlag groupLeaderHandler.handler();if(groupLeaderFlag){boolean managerFlag managerHandler.handler();if(managerFlag){projectManagerHandler.handler();}}} } 如果审批的人10个甚至更多我们的代码可能就会写成这样 if(第1步审核通过){// 第2步审核if(第2步审核通过){// 第3步审核if(第3步审核通过){// 第4步审核if(第4步审核通过){// 第5步审核if(第5步审核通过){// 第6步审核if(第6步审核通过){//...}}} }} } 这种代码不仅冗余并且当我们要将某两关进行调整时对代码的改动非常大这种操作的风险是很高的因此这是一种非常糟糕的写法。 4.使用责任链和工厂进行改造 /*** 审核接口也可以使用抽象类*/ public interface Approver {void handler();void setNextApprover(Approver nextApprover); }/*** 行政部*/ public class AdministrationDepartment implements Approver{private Approver nextApprover;Overridepublic void handler() {System.out.println(行政部审批通过);if (nextApprover ! null) {nextApprover.handler();}}Overridepublic void setNextApprover(Approver nextApprover) {this.nextApprover nextApprover;} }/*** 财务部*/ public class FinanceDepartment implements Approver{private Approver nextApprover;Overridepublic void handler() {System.out.println(财务部审批通过);if (nextApprover ! null) {nextApprover.handler();}}Overridepublic void setNextApprover(Approver nextApprover) {this.nextApprover nextApprover;} }/*** 总经理*/ public class GeneralManager implements Approver{private Approver nextApprover;Overridepublic void handler() {System.out.println(总经理审批通过);if (nextApprover ! null) {nextApprover.handler();}}Overridepublic void setNextApprover(Approver nextApprover) {this.nextApprover nextApprover;} }/*** 工厂类在工厂类中配置审批流程形成责任链*/ public class ApprovalProcessFactory {public static ListApprover approvers;static {approvers Arrays.asList(new AdministrationDepartment(),new FinanceDepartment(), new GeneralManager(), new CEO());}public static Approver createApprovalProcess() {// 将处理器按顺序链接成责任链for (int i 0; i approvers.size() - 1; i) {approvers.get(i).setNextApprover(approvers.get(i 1));}return approvers.get(0);} }//测试类 public class ApprovalProcessTest {public static void main(String[] args) {Approver approvalProcess ApprovalProcessFactory.createApprovalProcess();approvalProcess.handler();} }
http://www.w-s-a.com/news/424492/

相关文章:

  • 给网站添加百度地图绵阳做绵阳做网站网站
  • 用电脑做服务器制作网站东莞营销网站建设
  • 网站需要怎么做wordpress 重装
  • 做电影网站赚钱的方法世界500强企业排名2023
  • 领卷网站怎么做的西宁设计网站建设
  • 东莞网站建设价位软件开发税率是13%还是6
  • 企业网站建设一条龙如何在网上推广自己
  • 成品网站制作公司企梦网站建设
  • 网站开发微信授权登录ftp 如何 更新 wordpress
  • icp备案和网站不符查询公司的网站备案
  • 万江营销型网站建设泰安网站建设制作电话号码
  • 做网站是用ps还是ai服饰东莞网站建设
  • 只做一页的网站多少钱网站开发就业趋势
  • 陈村网站建设有哪些网站可以做店面设计
  • 查询网站注册信息wordpress 照片墙
  • 成都网站设计服务商室内设计设计师网站推荐
  • 企业建站系统cms百度网址ip
  • wordpress 代码编辑插件下载搜索引擎优化seo课程总结
  • 韩都衣舍网站建设的改进邯郸公众号小程序制作
  • 上海设计网站建设在线视频制作
  • 东营高端网站建设新建网站如何让百度收录
  • wordpress怎么生成网站地图微网站平台怎样做网站
  • 同安区建设局网站招投标公众号简介有趣的文案
  • 江苏州 网站制作网上宣传方法有哪些
  • 做网站时怎样申请域名郑州制作网站公司
  • 深圳 网站开发公司电话网站关键词快排名
  • 网站建设的工作总结seo同行网站
  • 网站需要兼容哪些浏览器sql数据库做的网站怎么发布
  • 营销型网站的建站步骤是什么意思广州门户网站建设公司
  • 汕尾好网站建设推广计算机软件包含网站开发