默默地EEer,原文地址:

http://www.cnblogs.com/hebaichuanyeah/p/5625233.html

职责链模式指使多个对象多有机会处理请求,避免请求发送者和接受者的耦合关系。

将这些接受处理的对象连成一条链,并沿着该链处理请求。

一个传说中的应用情景:

假如去政府部门办事,遇到了打字员小丽,在打LOL的小张以及主任老李,互相踢皮球推脱。

#include <iostream>
using namespace std;class Handler
{
protected:string name;Handler * successor;
public:Handler(){}virtual ~Handler(){}void setSuccessor(Handler * successor){this->successor = successor;}string getName(){return name;}virtual void HandleRequest(string str){}
};
//传说中的政府部分踢球皮球人员
class FootballPlayer : public Handler
{
public:FootballPlayer(string name){this->name = name;}virtual void HandleRequest(string str){if(name == str){cout<<this->name<<": 办理事务.."<<endl;}else if(successor != NULL){cout<<this->name<<":  这个不归我管,你去找"<<successor->getName()<<endl;successor->HandleRequest(str);}else{cout<<this->name<<":  这个办不了啦"<<endl;}}
};main()
{Handler * xiaoli = new FootballPlayer("打字员小丽");Handler * xiaozhang = new FootballPlayer("在打lol的小张");Handler * laoli = new FootballPlayer("主任老李");//小丽把皮球踢给小张xiaoli->setSuccessor(xiaozhang);xiaozhang->setSuccessor(laoli);laoli->setSuccessor(NULL);xiaoli->HandleRequest("办个事");
}

转载于:https://www.cnblogs.com/hebaichuanyeah/p/5625233.html

[设计模式]6. C++与职责链模式(chain of rsponsibility pattern)相关推荐

  1. atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换

    atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 可以选择的模式: 表格模式,责任链模式 1 3 ...

  2. 设计模式的理解: 职责链模式 (Chain of Responsibility)

    职责链模式(Chain of Responsibility Pattern),为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式. ...

  3. 重温设计模式(三)——职责链模式(chain of responsibility)

    一. 写在前面的 这么多的设计模式,我觉得职责链是我第一次看上去最简单,可是回想起来却又最复杂的一个模式. 因此,这个文章我酝酿了很久,一直也没有胆量发出来,例子也是改了又改,可是仍然觉得不够合理.所 ...

  4. 37职责链模式(Chain of Responsibility Pattern)

    动机(Motivate):     在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少地带来请求发送者与接受者的紧耦合.     如何使请求的 ...

  5. 职责链模式(Chain of Responsibility)(对象行为型)

    1.概述 你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象).至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与 ...

  6. 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)

    原文:乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 责任链模式(Chain of ...

  7. 二十四种设计模式:责任链模式(Chain of Responsibility Pattern)

    责任链模式(Chain of Responsibility Pattern) 介绍 为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求.将这些对象连成一条链,并沿着这条链传递该请求, ...

  8. 设计模式之职责链模式(Chain of Responsibility)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】

    一.引言 今天我们开始讲"行为型"设计模式的第八个模式,该模式是[职责链模式],英文名称是:Chain of Responsibility Pattern.让我们看看现实生活中的例 ...

最新文章

  1. 景德镇陶瓷学院计算机协会,景德镇陶瓷学院计算机协会换届大会总结报告
  2. 沉痛悼念游戏开发大神毛星云
  3. mysql5.6.42 力资源_MySQL5.6.42解压版安装教程
  4. pull to load more data
  5. 史上最全的Nginx配置参数中文说明
  6. c++STL的反向迭代器
  7. Factors of Factorial AtCoder - 2286 (N的阶乘的因子个数)(数论)
  8. if __name__ == __main__:什么意思_秒懂Python编程中的if __name__ == 'main' 的作用和原理...
  9. Linux手动释放缓存的方法
  10. 最小路径和--p64--动态规划
  11. centos6配置mysql远程访问_mysql设置密码远程访问编码格式
  12. kb931125—rootsupd_kb931125补丁下载
  13. 通过cRIO 9047 USB端口自定义开发周立功CAN盒
  14. VTN系列多通道振弦采集仪数据查看和参数修改
  15. 单线程与多线程使用场景
  16. 京东数据库泄露事件分析
  17. 计算机连网线怎么联网,电脑直接插网线上网
  18. Python 20行简单实现有道在线翻译
  19. php控制输出数量,PHP 输出控制
  20. 快速集成华为AGC云存储服务-Web

热门文章

  1. Adsense加入黑名单的预防办法
  2. Java Collections Framework - Java集合框架List,Map,Set等全面介绍之概要篇
  3. 《netty实战》阅读笔记(2)——Netty 的数据容器ByteBuf
  4. UI体系的本质是结构化存在
  5. PetaPoco初体验(转)
  6. javascript实例——鼠标特效篇(包含2个实例)
  7. java的自动类型转换和强制类型转换
  8. GMF 教程 Mindmap 5
  9. ORACLE HANDBOOK系列之十一:分区(Partition)
  10. 读书笔记:《时间投资法》之一