责任链模式介绍
责任链模式是一种行为设计模式,其中多个对象按顺序依次处理请求,直到其中一个对象能够处理该请求为止。这种模式允许请求在发送者和接收者之间解耦,同时允许多个对象都有机会处理请求。
在责任链模式中,每个处理对象都包含对下一个处理对象的引用,形成一条链。当请求被发送到链上的第一个处理对象时,这个请求会逐个被链上的处理对象检查,直到找到一个能够处理请求的对象为止。
责任链模式通常用于避免请求发送者与接收者之间的耦合,或者用于动态指定能够处理请求的对象。
责任链模式实现场景
假设一个在线购物系统中,顾客可以申请退货。这个系统可以应用责任链模式来处理退货申请。首先有初级客服处理退货请求,如果初级客服无法处理,则请求会传递给中级客服,再进一步传递给高级客服。如果高级客服仍无法处理,则可以将请求传递给退货部门主管。
这里的责任链是由初级客服、中级客服、高级客服和退货部门主管构成的链条。每个处理对象都有机会处理顾客的退货请求,直到请求被成功处理为止。这样可以保证退货请求在系统内被逐个处理,直到找到能够处理的对象为止,避免了请求发送者与接收者之间的直接依赖。
实现预览
单元测试:
最终使用
优化:
1.为防止继承者修改,处理doHandler需要实现外,其余均不可继承