关闭

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

标签: 设计模式
171人阅读 评论(0) 收藏 举报
分类:

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

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

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

这里写图片描述

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

#使用场景:

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

#总结:

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

#参考资料:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:73446次
    • 积分:1360
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:82篇
    • 译文:0篇
    • 评论:17条
    最新评论