看到这个模式,最先想到的就是okhttp跟Android的事件处理机制了。
使用场景:
当功能出现分层,层级之间相对独立这种情况,可考虑使用责任链模式。
类关系图:
Handler是一个抽象类,它拥有属性next,类型是自身类型,并有处理请求但request方法。
具体的Handler实现类定义自身对事件的处理逻辑,如果自身处理不了,则将事件传递给next,由next去处理,以此类推。
优点:
弱化了发出请求的人和处理请求的人之间的关系,使得处理请求的人可作为复用的组件。
缺点:
比起直接找到能够处理请求的人,责任链模式数据需要走更多的路,响应时间肯定就比较长了。