设计模式——责任链(Chain of Responsibility)

责任链模式 为 设计模式的 行为型模式的一种.

#责任链最常见的举例是 申请费用:

程序猿 申请出差费用 (由于各位领导的审批额度有限,需要逐层审批):小组长—>项目经理—>部门经理—>Boss(小组长发现额度过大,小组长向项目经理申请,项目经理发现数额过大,项目经理向上申请(所以程序猿并不知道最终是谁处理的,最终那位领导可能也不知道具体是谁申请的——解耦))

这里写图片描述

这里的程序猿就是Client(Requester请求者),各级领导就是ConcreteHandler(处理者)。Handler 为处理者的抽象类。

#使用场景:

  1. Android源码中的实现就是事件分发,父控件将事件逐层分发给子控件。
  2. Tomcat中的Filter就是使用了责任链模式。

#总结:

  • 其实就是入口处理器处理一个请求,然后入口处理器由于某者原因使用其他兄弟处理器来处理这个请求, 这种让其他处理器来处理这个请求的次数顺序(链、树、环)为N,那么这种模式称之为责任链模式。
  • 这里处理器调用的处理器为其本身拥有的。
  • 这种模式其实是由于某种未知情况,处理器需要借助其他处理器来处理相应请求。其实就是处理器自己不能处理的问题,主动转交问题,问题的传递处理
  • 就一句:问题的传递处理

#参考资料:

Android设计模式源码解析之责任链模式
《JAVA与模式》之责任链模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值