(设计模式)责任链

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L5Pc9hA2-1622986462684)(https://camo.githubusercontent.com/2202e9116181a86f9c1fb39153c085904274893fcf476b67ba6e1914b06445c5/687474703a2f2f6d6d62697a2e717069632e636e2f6d6d62697a5f706e672f42574c624b395067714b335839513448777839626141465969616b34364251696150664d36724d574e58646a69636d32434164724c703245514b42476963434a58394a6b6b36484768366e38326962595552336a58426d544a52412f303f77785f666d743d706e67)]

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

模式分析:

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

本篇文章由一文多发平台ArtiPub自动发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值