Android设计模式-8-责任链模式

1. 定义

将一个请求从链式的首端发出,沿着链的路径依次传递给每个节点对象,直到有对象处理这个请求为止,使多个对象都有机会处理请求,从而避免了请求发送者与接责任链模式收者之间的耦合关系,使编程更有灵活性。

2. 使用场景

1. 有多个设计模式23模式介绍对象可以处理同一个请求,具体哪个对象处理该请求由运时刻自动确定;

2. 在不明确指定接收其他综合收益者的情况下,向多个对象中的一个提交一个请求;

3. 可动态指定一组对象处理请求。

3. 优缺点

优点:

1. 降低耦合度,将请求的发送者和接耦合度是什么意思收者解耦;

2. 简化了对象,使对象不需要知道链的结构;

3. 增强给对象指派职责的系统运维工程师灵活性, 通过改变链内的成员或者调动它们的次序,允许动态地新增或者除责任;

缺点:

1. 不能保证请求一定被接设计模式七大原则收;

2. 系统性能将受到一定影响,而且在进代码调试时不太方便,可能会造成耦合度是什么意思循环调用;

3.其他和其它的区别 可能不容易观察运时的特征,有碍于除错;

4. Android源码中的使用

Android中的触摸事件的传递机制,就属于责任链模式,从Activity到Phon设计模式七大原则eWindow,再到我们自己的RootView及子设计模式View层层传递,直到有View消费该事件;

Okhttp 内部使用了责任链模式来完成每个 Interceptor 拦截器的调用;

5. 实例演示

以公司中申请报销费用为例,不同领导可以批放不同额度的报销,职员提交申请后,申请由下往上传递,直到有领导处理该申请;

1. 创建一个领导基类

2. 创建不同层级的领导实现类,依次为组长,主管,经理,老板


                                            Android设计模式-8-责任链模式

3. 创建不同的领导对象,关联责任链,进行报销申请


                                            Android设计模式-8-责任链模式

我是今阳,如果想要进阶和了解更多的干货,欢迎关注公设计模式面试题众号”今阳说“接收我的最新文章