项目实战 | 责任链模式 (下)

案例二:工作流,费用报销审核流程

同事小贾最近刚出差回来,她迫不及待的就提交了费用报销的流程。根据金额不同,分为以下几种审核流程。报销金额低于1000元,三级部门管理者审批即可,1000到5000元除了三级部门管理者审批,还需要二级部门管理者审批,而5000到10000元还需要一级部门管理者审批。即有以下几种情况:

  1. 小贾需报销500元,三级部门管理者审批即可。

  2. 小贾需报销2500元,三级部门管理者审批通过后,还需要二级部门管理者审批,二级部门管理者审批通过后,才完成报销审批流程。

  3. 小贾需报销7500元,三级管理者审批通过后,并且二级管理者审批通过后,流程流转到一级部门管理者进行审批,一级管理者审批通过后,即完成了报销流程。

UML图

AbstractFlowHandler作为处理器抽象类,抽象了**approve()审核方法,一级、二级、三级部门管理者处理器继承了抽象类,并重写其approve()**审核方法,从而实现特有的审核逻辑。

配置类如下所示,每层的处理器都要配置审核人、价格审核规则(审核的最大、最小金额)、下一级处理人。配置规则是可以动态变更的,如果三级部门管理者可以审核的金额增加到2000元,修改一下配置即可动态生效。

代码实现与案例一相似,感兴趣的自己动动小手吧~

责任链的优缺点

相关推荐
fīɡЙtīиɡ ℡4 天前
JAVA责任链模式
责任链模式
geovindu10 天前
Java: Chain of Responsibility Pattern
java·开发语言·后端·设计模式·责任链模式·行为模式
geovindu11 天前
CSharp:Chain of Responsibility Pattern
开发语言·后端·设计模式·c#·.net·责任链模式·行为模式
谢栋_17 天前
设计模式从入门到精通之(七)责任链模式
java·设计模式·责任链模式
wuqingshun31415925 天前
什么是责任链模式,一般用在什么场景?
java·责任链模式
ttod_qzstudio1 个月前
【软考设计模式】责任链模式:请求传递的多级处理与发送接收解耦精讲
设计模式·责任链模式
c238561 个月前
第三篇文档:多级信件分拣流水线 —— 责任链模式完美封装 System V 消息队列
运维·服务器·责任链模式
未若君雅裁2 个月前
责任链模式详解:从Servlet过滤器到订单创建流程
servlet·责任链模式
许彰午2 个月前
责任链模式实战——同一个框架里的两种链
java·开发语言·责任链模式
老码观察2 个月前
设计模式实战解读(九):责任链模式——流水线上层层把关的艺术
java·设计模式·责任链模式