设计模式之十二--责任链模式

责任链模式是一种设计模式,允许将多个对象串联成一个处理请求的链,请求沿着链传递,直到被某个对象处理。它常用于流程审批、过滤器等场景,通过抽象检测动作,实现灵活组装。与装饰器模式不同,责任链关注处理对象的统一和动作的统一。在动物园喂食动物的例子中,责任链模式用于食品检查流程。本文探讨了责任链模式的实现方式和应用场景,并与装饰器模式做了对比。
摘要由CSDN通过智能技术生成

定义:
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止

业务场景:
多个不同对象可以处理同一个请求,具体由哪一个对象处理,由业务规则动态确定。例如常见的流程审批、框架中的请示过滤等等。

动物园来了:
喂动物,对食物肯定还是有要求的。比如要先检查是不是三无产品,再看看有没有营养,最后检测质量是否合格等等。这几个流程,可能由于动物、食物的不同而不同。此时就需要抽象检测动作,灵活组装,结合工厂,组成不同的责任链来完成不同食物的检测。

与装饰器模式的不同:
装饰器本质是对某一方法或接口的加强,强调的是在不破坏原有类的情况下派生新的方法。
责任链强调的是处理对象统一,动作统一,灵活组装等等。与加强、修饰等无关。虽然在特定情况下两者会表现出类似现象,但有本质不同。

责任链的几种写法:
个人对这些不感冒,略显无聊,欢迎评论区讨论。

以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值