调用像链子,责任链模式

本文介绍了责任链模式,一种让请求沿着链式结构传递,直到被某个对象处理的模式。责任链模式通过抽象处理者类和具体处理者类实现,例如在报销流程中,不同级别的审批者构成链式结构。此外,还探讨了责任链模式在J2EE的Servlet和SpringMVC框架中的应用。
摘要由CSDN通过智能技术生成

0x01:责任链模式简介

在责任链模式中,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上进行传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。责任链模式的UML类图如下:

图片

其中,Handler是抽象处理者,定义了一个处理请求的接口;ConcreteHandler是具体处理者,处理它所负责的请求,可访问它的后继者,如果可处理该请求就处理,否则就将该请求转发给它的后继者。主要角色如下:

抽象处理者(Handler):定义出一个处理请求的接口。如果需要接口可以定义出一个方法以设定和返回对下一个处理对象的引用。这个角色通常由一个抽象类或者接口实现。Handler类的聚合关系给出了具体子类对下一个处理对象的引用,抽象方法handleRequest()规范了子类处理请求的操作。

具体处理者(ConcreteHandler):具体处理者接到请求后,可以选择将请求处理掉,或者将请求传给下一个Handler处理。由于具体处理者持有对一个处理对象的引用,因此,如果需要具体处理者可以访问下一个处理对象。

0x02:责任链模式实现

在工作中,免不了需要进行报销。现在与报销这个业务流程来实现责任链模式。约定如下:

报销金额 0 ~ 1W 直属上司审批即可,报销级别为1;

报销金额 1W

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值