职责链模式定义:将接收者对象连成一条链,并在该链上传递请求,直到有一个接收者对象处理它。通过让更多对象有机会处理请求,避免了请求发送者和接收者之间的耦合(即客户端并不需要知道谁处理了请求,客户端只要求有人出来处理请求)。
职责链模式类图:
职责链模式性能考虑:
- 响应时间过久,可能一次请求需要搜索整条职责链才能得到处理
- 占用内存过大,请求可能被最后一个接收者处理,而之前所有的接收者只是充当一个过客,这样就相当于创建了大量无用对象。
职责链模式的应用:
- Java中异常处理机制(开发工程师)
- JavaScript Event Model(前端工程师)
- J2EE FilterChain in Web(不是纯粹的COR模式,可以有多个对象处理请求)