数据结构:责任链
模式类型
数据结构
责任链
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
每个检查步骤都可被抽取为仅有单个方法的类,并执行检查操作。请求及其数据则会被作为参数传递给该方法。
将这些处理者连成一条链。链上的每个处理者都有一个成员变量来保存对于下一处理者的引用。除了处理请求外,处理者还负责沿着链传递请求。请求会在链上移动,直至所有处理者都有机会对其进行处理。
处理者可以决定不再沿着链传递请求,这可高效地取消所有后续处理步骤。
使用场景
- 使用不同方式处理不同种类请求,请求顺序和类型预先未知
- 按顺序处理请求
举例
使用责任链
1 | class Request { |