(设计模式)责任链

责任链:将每个模块负责的处理流程链接起来,形成一条链子,所有请求的数据进入这条链子时,都会由链头到链尾被链子上的各个模块处理。

例如:Java EE 的 Filter(过滤链)就是责任链,所有请求都必须经过这条过滤链,每经过一个节点都会被这个节点进行处理。如果请求满足过滤条件,那么就会进入下一个过滤节点,直到到达过滤链的尾部。

因为是过滤链是链表的结构,那么也就是说如果我需要增加一个过滤条件,那么就往过滤链加入一个过滤节点;同理,要减少一个过滤条件,那么就从链表移除即可。这样就可以轻松实现动态管理过滤规则,并且每个过滤节点层层过滤。

模式分析:

1、如果一个处理规则和流程过于庞大,那么可以将其拆分成若干个规则和流程,然后将它们串起来形成一条责任链。这样每个节点只负责一部分规则和流程,维护和改动非常友好。同时如果不需要某个规则和流程,那么就将对应的节点移除即可。同样增加规则和流程也是如此。

posted @ 2021-06-06 21:38  多元思维的开发者  阅读(76)  评论(0编辑  收藏  举报