责任链模式(Iterator Pattern)是行为型设计模式之一
将每一个节点看做一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首端发出,沿着链的路径依次传递给每一个对象,直到有对象处理这个请求为止。我们将这样的一种模式称为责任链模式
定义
使很多对象都有机会处理请求,从而避免了请求的发送者和接收者直接的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
灵活之处在于请求的发起可以从责任链的任何一个节点处开始
对于责任链中的一个处理者对象,其只有两个行为,一是处理请求,二是将请求转送给下一个节点,不允许某个处理中对象在处理了请求后又将请求转送给上一个节点的情况。
纯的责任链
对于一条责任链来说,一个请求最终只有两种情况,一是被某个对象所处理,称该责任链为纯的责任链
不纯的责任链
另一个是所有的对象均未对其处理,称为不纯的责任链
Android 源码中的责任链模式
事件的分发处理
Handler 处理消息使用的设计模式也是责任链模式
网友评论