责任链模式

定义:Avoidcouplingthesenderofarequesttoitsreceiverbygivingmorethanoneobjectachancetohandletherequest.Chainthereceivingobjectsandpasstherequestalongthechainuntilanobjecthandlesit.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。)

抽象的处理者实现三个职责:

  • 定义一个请求的处理方法handleMessage,唯一对外开放的方法;
  • 定义一个链的编排方法setNext,设置下一个处理者;
  • 定义了具体的请求者必须实现的两个方法:定义自己能够处理的级别getHandlerLevel和具体的处理任务echo。

注意事项:链中节点数量需要控制,避免出现超长链的情况,一般的做法是在Handler中设置一个最大节点数量,在setNext方法中判断是否已经是超过其阈值,超过则不允许该链建立,避免无意识地破坏系统性能。

文章链接 https://fangzongzhou.github.io/2021/02/14/计算机/设计模式/结构型模式/责任链模式/