基于责任链模式的审批示例
一、责任链模式、单一职责
责任、职责就是所负责的工作,单一职责指的就是只负责该部分的工作,不越界不越权。当前环节处理完毕后,根据区间的划分情况,是否需要交到下一职级人员处理,如果不需要下一职级人员处理就完结事项,否则指定下一位执行人员,并由下一位执行人员继续执行。这样形成了一个串行的链条。
二、常见示例
请假申请、资金申请,这类涉及区间权限的流程,很多情况下都基于责任链模式实现。
以请假为例,因为请假涉及到工作的进度,在不同层面上的负责人需要清楚知道人员的请假情况。
假设工司的层级架构:
员工 -》 行政部门 -》 部门负责人 -》 部门分管领导 -》 副总经理 -》 总经理
员工请假1天、5天、10天、15天的情况,最终审核人根据请假天数已定。
1)请假1天以及内,行政部门备案就可以了;
2)请假2~5天,行政部门备案后,需要部门负责人审批;
3)请假6~10天,部门负责人审批后,需要部门分管领导审批;
4)请假11~15天,部门分管领导审批后,需要副总经理审批;
5)请假15以上的,副总经理审批后,需要总经理审批。
资金审批流程也是类似。
三、设计
责任链有点像链表,当前需要有下一步的环节时,添加下一操作的对象。
在各自处理方法中,增加判断逻辑,是否需要指定下一环节的操作对象。