- //本文作者:凸凹里歐
- //本文收录菜单栏:《设计模式是什么鬼》专栏中
曾经有这么一些零散的功能节点,他们各自承担各自的义务,分工明确,各司其职。为了更高效,更完整地解决客户的问题,他们发扬团队精神,互相串联起来形成一个有序的责任传递链表,于是责任链模式诞生了。当然,它的结构也不一定非得是链表,甚至可以是树型分叉结构,这要根据业务场景看怎样去灵活运用,但其核心意义是为了处理某种连续的流程,并确保业务一定能走到相应的责任节点上并得到相应的处理。
说到这里想必大家已经想到了工作流吧?对,企事业单位中通常为了完成某项日常任务,通常要制定一些工作流程,按步骤拆分,并组织好各个环节中的逻辑关系及走向,这样才能更高效、更规范地完成任务。
根据以上流程图,我们来做一个最简单的例子。假设某公司针对出差报销业务制定审批流程,有三个审批角色分别是员工(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<

