1.0 KiB
1.0 KiB
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。)
在责任链模式中一个请求发送到链中后,前一节点消费部分消息,然后交由后续节点继续处理,最终可以有处理结果也可以没有处理结果,读者可以不用理会什么纯的、不纯的责任链模式。同时,请读者注意 handlerMessage 方法前的 final 关键字,可以阅读第10章的模板方法模式
优点
将请求与处理分开,请求者可以不知道谁处理的,处理者可以不用知道请求全貌
缺点
性能问题,每个请求都是链头遍历到链尾
调试不很方便
注意事项
链中节点数量需要控制,避免出现超长链的情况