责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将多个对象的请求连成一条链,并沿着这条链传递请求,直到有一个对象处理为止,避免请求的发送者和接收者之间耦合。
责任链模式
责任链模式 Chain of Responsibility[rɪˌspɑ:nsəˈbɪləti] Pattern
:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。也常用来替代各种分支和条件判断语句。
类图结构
结构解析
Handler
抽象类,申明一个请求处理的方法,并持有下一个处理对象的引用。ConcreteHandler
实现类,实现请求,如果无法处理转发给下一个继任者处理。
示例
1 | // 1. Handler |
总结
当客户提交一个请求时,请求时沿着链传递到一个具体的 ConcreteHandler
对象负责并处理它。在 Android
中常见的责任链模式就是 View
按键事件分发机制。
参考文档
- 大话设计模式
Android
源码设计模式解析与实战