设计模式是什么鬼(责任链)

 

  • //本文作者:凸凹里歐
  • //本文收录菜单栏:《设计模式是什么鬼》专栏中

 

曾经有这么一些零散的功能节点,他们各自承担各自的义务,分工明确,各司其职。为了更高效,更完整地解决客户的问题,他们发扬团队精神,互相串联起来形成一个有序的责任传递链表,于是责任链模式诞生了。当然,它的结构也不一定非得是链表,甚至可以是树型分叉结构,这要根据业务场景看怎样去灵活运用,但其核心意义是为了处理某种连续的流程,并确保业务一定能走到相应的责任节点上并得到相应的处理。

 

说到这里想必大家已经想到了工作流吧?对,企事业单位中通常为了完成某项日常任务,通常要制定一些工作流程,按步骤拆分,并组织好各个环节中的逻辑关系及走向,这样才能更高效、更规范地完成任务。

 

根据以上流程图,我们来做一个最简单的例子。假设某公司针对出差报销业务制定审批流程,有三个审批角色分别是员工(1000元权限)、经理(5000元权限)、以及CEO(10000元权限),各审批人代码如下。

复制代码
public class Staff {      private String name;      public Staff(String name) {         this.name = name;     }      public boolean approve(int amount) {         if (amount <= 1000) {             System.out.println("审批通过。【员工:" + name + "】");             return true;         } else {             System.out.println("无权审批,请找上级。【员工:" + name + "】");             return false;         }     }  }
复制代码

  

复制代码
public class Manager {      private String name;      public Manager(String name) {         this.name = name;     }      public boolean approve(int amount) {         if (amount <= 5000) {             System.out.println("审批通过。【经理:" + name + "】");             return true;         } else {             System.out.println("无权审批,请找上级。【经理:" + name + "】");             return false;         }     }  }
复制代码
 
复制代码
public class CEO {      private String name;      public CEO(String name) {         this.name = name;     }      public boolean approve(int amount) {         if (amount <= 10000) {             System.out.println("审批通过。【CEO:" + name + "】");             return true;         } else {             System.out.println("驳回申请。【CEO:" + name + "】");             return false<
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信