每个节点有两个选择:要么承担责任做出回应,要么把请求发到后续环节。

new 几个 Handler,通过 Handler.setNext 编排责任链,请求会沿着责任链传递,每个 Handler.handlerMessage 方法会检测当前能否处理这个 request,如果不能就调用 this.nextHandler.handleMessage(request),如果可以处理,就直接返回结果。

注意链中节点数目不应该过多。

例:Express 中间件,将 request 在不同的中间件传递,执行不同的操作。