责任链模式是很重要、很常用的设计模式,必须要掌握。
责任链模式的含义
责任链的含义
使多将请求的发送者和接收者进行解耦,使多个接受者都有机会处理请求,这些接收者连成一条链,请求沿着这条链传递,直到有一个对象处理它为止。
举个生活中的例子
财务审批就是一个责任链模式。假设某个员工需要报销一笔费用,审核者可以分为:
组长:只能审核1000元以下的报销;
大主管:只能审核10000元以下的报销;
CEO:可以审核任意额度。
用责任链模式设计此报销流程时,每个审核者只关心自己责任范围内的请求,并且处理它。对于超出自己责任范围的,扔给下一个审核者处理,这样,将来继续添加审核者的时候,不用改动现有逻辑。
责任链的另一种含义
上边是一种责任链模式,还有一种责任链模式是:链上的所有接收者都要处理。比如:员工的转正申请,从小领导到大领导,每个领导都进行审批。
实际项目场景
下边这些场景用责任链模式很合适,一定要用责任链模式,便于维护!
- 用户取消订单时,要按顺序处理:退回商品的库存、退回用户的余额、退回用户的优惠券。
- 在校验权限时,要按顺序判断:校验token是否过期、校验是否有这个url权限、是否被拉黑。有一个校验不通过则不允许请求。
责任链模式的好处有哪些?
- 调用者与链上的各个被调用者进行解耦。
- 各个被调用者只需负责自己的逻辑。(符合单一职责原则)
- 添加一个被调用者很方便,在链上加一个即可。(符合开闭原则)
- 提高了代码的可维护性、扩展性。
责任链模式Java实战
Java责任链模式写法2:注入抽象类 – 自学精灵(最好的写法)
请先
!