所有分类
  • 所有分类
  • 未分类

责任链模式概述

责任链模式是很重要、很常用的设计模式,必须要掌握。

责任链模式的含义

责任链的含义

使多将请求的发送者和接收者进行解耦,使多个接受者都有机会处理请求,这些接收者连成一条链,请求沿着这条链传递,直到有一个对象处理它为止。

举个生活中的例子

财务审批就是一个责任链模式。假设某个员工需要报销一笔费用,审核者可以分为:

组长:只能审核1000元以下的报销;
大主管:只能审核10000元以下的报销;
CEO:可以审核任意额度。

用责任链模式设计此报销流程时,每个审核者只关心自己责任范围内的请求,并且处理它。对于超出自己责任范围的,扔给下一个审核者处理,这样,将来继续添加审核者的时候,不用改动现有逻辑。

责任链的另一种含义

上边是一种责任链模式,还有一种责任链模式是:链上的所有接收者都要处理。比如:员工的转正申请,从小领导到大领导,每个领导都进行审批。

实际项目场景

下边这些场景用责任链模式很合适,一定要用责任链模式,便于维护!

  1. 用户取消订单时,要按顺序处理:退回商品的库存、退回用户的余额、退回用户的优惠券。
  2. 在校验权限时,要按顺序判断:校验token是否过期、校验是否有这个url权限、是否被拉黑。有一个校验不通过则不允许请求。

责任链模式的好处有哪些?

  1. 调用者与链上的各个被调用者进行解耦。
  2. 各个被调用者只需负责自己的逻辑。(符合单一职责原则)
  3. 添加一个被调用者很方便,在链上加一个即可。(符合开闭原则)
  4. 提高了代码的可维护性、扩展性。

责任链模式Java实战

Java责任链模式写法1:Spring的事件 – 自学精灵

Java责任链模式写法2:注入抽象类 – 自学精灵最好的写法

1

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录