责任链模式

1.定义:将一个请求从链式的首段出发沿着链的路径依次传递给每个节点对象,直到有对象处理这个请求为止,使多个对象都有机会处理请求,从而避免的请求发送者与接收者之间的耦合关系,是变成更有灵活性。
2.使用场景:
2.1:有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定;
2.2:在不明确指定接收者的情况下向多个对象中的一个提交一个请求;
2.3:可动态指定一组对象处理请求
3.优缺点:
优点:3.1:降低耦合度,将请求发送者合接收则解耦
3.2:简化了对象,使对象不需要知道链的结构
3.3:增强给对象指派职责的灵活性,通过改变链内的成员或则调动它们的次序,允许动态的新增或者删除责任;
缺点:3.1:不能保证请求一定被接收
3.2:系统性能将受到一定的影响,而且在进行代码调试时候不太方便,可能造成循环调用
3.3:可能不容易观察运行时的特征,有碍于出错
4.android源码中使用
4.1:android中触摸事件的传递机制,就属于责任链模式从Activity 到phoneWindow,再到我们自己的RootView以及子View层层传递,直到有View消费改事件;
4.2:okhttp内部使用了责任链模式来完成interceptor拦截器的调用;
5.实例演示公司中请求报销费用例子,不同领导可以批放不同的额度报销,职员提交后,申请由下往上传递的,直到有领导出现申请
5.1创建领导基类:
5.2创建不同层级领导实现类,依次为组长,主管
5.3创建不同的领导对象,关联责任链,进行报销申请

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容