关闭

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

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

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

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

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

这里写图片描述

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

#使用场景:

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

#总结:

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

#参考资料:

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

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

设计模式(c++)笔记之二十一(Chain of Responsibility模式)

一、描述:       概念:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。    ...
  • my183100521
  • my183100521
  • 2013-10-25 10:52
  • 1396

[设计模式]ChainOfResponsibility责任链模式

问题 熟悉VC/MFC的都知道,vc是”基于消息,事件驱动”,消息在vc开发中起着举足轻重的作用。在MFC中,消息是通过一个向上递交的方式进行处理,例如一个WM_Command消息的查出来流程可能为...
  • ouyangshima
  • ouyangshima
  • 2013-01-10 20:09
  • 2405

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

如果将若干对象按照某种层次结构进行组织,比如组织为类责任链,客户端代码就有可能不必事先了解自己将使用哪一个类。在这种情况下,链中的每个对象都有一个方法,当客户端代码调用该方法的时候,这些对象要么执行该...
  • u011731233
  • u011731233
  • 2015-06-16 10:10
  • 1470

【Java设计模式】(3)责任链Chain of Responsibility

  • 2015-01-07 14:38
  • 8KB
  • 下载

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

责任链是什么? 责任链条模式使多个对象都有机会处理请求。打个比方说,责任就是得分,多个对象就是篮球队员,在三分线的远投的时候,球由投手投篮。带球突破则由后卫负责。。。 责任链模式的适用范围 1. ...
  • Paul_Huang_2011
  • Paul_Huang_2011
  • 2015-05-11 21:59
  • 332

我所理解的设计模式(C++实现)——责任链模式(Chain Of Responsibility Pattern)

 责任链模式是面向对象中的一种软件设计模式,它包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添...
  • lixingying567
  • lixingying567
  • 2015-06-07 08:28
  • 389

设计模式学习笔记——责任链(Chain of Responsibility)模式

设计模式学习笔记——责任链(Chain of Responsibility)模式@(设计模式)[设计模式, 责任链模式, chain of responsibility]设计模式学习笔记责任链Chai...
  • q547550831
  • q547550831
  • 2017-04-13 10:26
  • 231

软件设计模式——责任链模式(Chain Of Responsibility)

引言责任链模式就是“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?我管呢!定义与结构从名字上大概也能猜出这个模式的大概模样——系统中将会存在...
  • Jungle_hello
  • Jungle_hello
  • 2016-05-01 21:23
  • 329

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

接下来我们将要谈谈责任链模式,有多个对象,每个对象持有对下一个对象的引用,这样就会形成一条链,请求在这条链上传递,直到某一对象决定处理该请求。但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任...
  • wangchangshuai0010
  • wangchangshuai0010
  • 2014-02-20 21:03
  • 689

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

1. 意图 使多个对象都有机会处理请求. 从而避免请求的发送者/接收者之间的耦合关系.这些对象将连成一条链.并沿着链传递该请求. 直到有个对象处理它. 2. 动机 3. 适用性 有...
  • koudaidai
  • koudaidai
  • 2012-03-12 14:14
  • 751
    个人资料
    • 访问:79322次
    • 积分:809
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:6篇
    • 译文:0篇
    • 评论:17条