bacor

个人站

Coding is important, so is writing


责任链模式

定义

使多个对象都有机会处理请求,从而避免发送者和接收者之间的耦合关系。核心做法是将这些对象连成一条链,使请求沿着链传递,直到有对象处理请求为止。

通用类图如下:

所谓责任链,通俗地讲就是把请求传给一个对象,它能处理则处理,不能处理则传给链条中下一个对象,整个过程颇似递归。

优点

最显著的优点是将请求和处理分开,请求者也不需要关心由谁处理、如何处理。

缺点

  1. 性能问题,当链条比较长时尤其明显
  2. 调试不方便

注意事项

使用责任链条模式需要特别注意链条节点的数量,避免出现超长链。一般做法是设置节点数量阈值,超过则不允许建立节点。

参考:

设计模式之禅