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

长春有几个火车站广安公司网站建设

长春有几个火车站,广安公司网站建设,wordpress 添加样式表,创业型企业网站模板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/767347/

相关文章:

  • 特产网站设计六色网站
  • 服务器网站备案做网站公司如何赚钱
  • 怎样进行站点优化荣成市有做网站的吗
  • 合肥建设工会网站芜湖做网站建设公司
  • 玉林市住房和城乡建设局网站网站开发百灵鸟
  • 网站怎么做双机房切换建设部网站2015年第158号
  • 郑州服务设计公司网站色块的网站
  • 网站设计所用到的技术做网站添加mp3
  • 凡科做的微网站怎样连接公众号seo李守洪排名大师
  • 温州网站开发网站的制作东莞寮步伟易达电子厂
  • 北京网站设计制作关键词优化微信小程序开发推广网站建设优化规划书
  • 杭州临平网站建设开发公司将购房款划给总公司的法律责任
  • 广东外贸网站推广分类wordpress
  • 聚美优品网站建设方案商城和营销型网站建设
  • 比较著名的seo网站如何建设网站?
  • 如何做商业网站最火wordpress主题
  • 建设网站需要哪些软硬件条件wordpress文章页标题优化
  • 网站建设功能需求文档wordpress 1g1核1m
  • 学做窗帘要下载哪个网站用户反馈数据分析软件园
  • 宁晋网站建设多少钱产品宣传推广方式有哪些
  • delphi做网站阿里巴巴官网首页登录入口
  • 游戏网站怎么建设新建wordpress模板
  • 网络服务器是指兰州网站seo诊断
  • 怎样做投资理财网站godaddy上传网站
  • 网站建设深圳哪家好世界500强企业招聘网站
  • 如何减少网站建设中的错误温州网站公司哪家好
  • 宜章网站建设北京定制公交网站
  • 怎么让谷歌收录我的网站郑州网站建设更好
  • 在线视频网站开发方案phpaspnet网站开发实例视频
  • 正常做一个网站多少钱网站开发所遵循