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


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

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

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

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

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

    UML图

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

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

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

    责任链的优缺点

  • 相关阅读:
    CVPR 2022 | ST-MR:“来自人类的恶意”
    js实现广告条+缓冲效果/键盘事件实现小人跑步
    《机器学习实战》7.AdaBoost元算法提高分类性能
    Java:join方法详解
    JDK1.8新特性之stream流及日期
    window 常用基础命令
    SpringBoot日志链路追踪实现
    espipe并发编程应用
    Postgresql 13 安装
    Springboot接入ChatGPT 续
  • 原文地址:https://blog.csdn.net/weixin_46228563/article/details/138097276