自己的理解:公司的OA流程,我要请病假,告诉了组长,组长说我知道了,然后交给了部门经理,部门经理知道了批完,转给了总裁,总裁说你滚吧 n+1 😊
简单使用的例子:
个人感觉和链表很像,定义一个节点,然后指向下一个节点。但是内部多了逻辑判断。
或者换个理解方式:管道流处理?RXJS
实际的应用:
营销订购系统、审核流转换处理、任务流程处理系统等系统中,其实我们在开发中往往主要应用的主要无非是以下三个场景(起码以我的平时开发的角度来看):
一是无需太关心责任链中各处理流的顺序的简单使用;
二是需要关注处理顺序,按责任链条延续处理,每个处理节点均可对请求进行节点的处理, 或将其传递给链上的下个处理节点;
三是在处理中和纯的责任链模式在链上只会有一个处理器用于处理业务数据存在差异,需要进行管道模式采用多个处理器都会处理业务数据。
网上看到的变种应用:
场景说明
假设我们有一个敏感词处理系统,我们需要对用户提交的相关内容进行敏感词校验,具体流程如下:
业务变动上后期还会在基本处理上加入或删除一些流程,或调整相关的顺序,具体可能如下:
可以看到以上的场景是一个多链条的处理,不在像前面的单链条模式,在处理以上结构时,我们的策略往往都是责任链的变种处理:管道模式处理。管道模式的处理大致上就正好如同以上的处理流程图一样