[设计模式]6. C++与职责链模式(chain of rsponsibility pattern)
默默地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)相关推荐
- atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 可以选择的模式: 表格模式,责任链模式 1 3 ...
- 设计模式的理解: 职责链模式 (Chain of Responsibility)
职责链模式(Chain of Responsibility Pattern),为请求创建了一个接收者对象的链.这种模式给予请求的类型,对请求的发送者和接收者进行解耦.这种类型的设计模式属于行为型模式. ...
- 重温设计模式(三)——职责链模式(chain of responsibility)
一. 写在前面的 这么多的设计模式,我觉得职责链是我第一次看上去最简单,可是回想起来却又最复杂的一个模式. 因此,这个文章我酝酿了很久,一直也没有胆量发出来,例子也是改了又改,可是仍然觉得不够合理.所 ...
- 37职责链模式(Chain of Responsibility Pattern)
动机(Motivate): 在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少地带来请求发送者与接受者的紧耦合. 如何使请求的 ...
- 职责链模式(Chain of Responsibility)(对象行为型)
1.概述 你去政府部门求人办事过吗?有时候你会遇到过官员踢球推责,你的问题在我这里能解决就解决,不能解决就推卸给另外个一个部门(对象).至于到底谁来解决这个问题呢?政府部门就是为了可以避免屁民的请求与 ...
- 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)
原文:乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 责任链模式(Chain of ...
- 二十四种设计模式:责任链模式(Chain of Responsibility Pattern)
责任链模式(Chain of Responsibility Pattern) 介绍 为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求.将这些对象连成一条链,并沿着这条链传递该请求, ...
- 设计模式之职责链模式(Chain of Responsibility)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】
一.引言 今天我们开始讲"行为型"设计模式的第八个模式,该模式是[职责链模式],英文名称是:Chain of Responsibility Pattern.让我们看看现实生活中的例 ...
最新文章
- 景德镇陶瓷学院计算机协会,景德镇陶瓷学院计算机协会换届大会总结报告
- 沉痛悼念游戏开发大神毛星云
- mysql5.6.42 力资源_MySQL5.6.42解压版安装教程
- pull to load more data
- 史上最全的Nginx配置参数中文说明
- c++STL的反向迭代器
- Factors of Factorial AtCoder - 2286 (N的阶乘的因子个数)(数论)
- if __name__ == __main__:什么意思_秒懂Python编程中的if __name__ == 'main' 的作用和原理...
- Linux手动释放缓存的方法
- 最小路径和--p64--动态规划
- centos6配置mysql远程访问_mysql设置密码远程访问编码格式
- kb931125—rootsupd_kb931125补丁下载
- 通过cRIO 9047 USB端口自定义开发周立功CAN盒
- VTN系列多通道振弦采集仪数据查看和参数修改
- 单线程与多线程使用场景
- 京东数据库泄露事件分析
- 计算机连网线怎么联网,电脑直接插网线上网
- Python 20行简单实现有道在线翻译
- php控制输出数量,PHP 输出控制
- 快速集成华为AGC云存储服务-Web