裘千尺裘千仞裘千丈与杨过篇--责任链模式C++实现
学了C++基本的语法都知道继承可以让子类拥有更多的功能,除了继承还有组合,委托,也能让一个类的功能增加。设计模式,这个设计是设计继承,组合,委托,之间相互叠加的方式,让其符合业务需求。
责任链模式是继承 +
委托的运用。在以下代码中,定义一个抽象管理者类,派生经理类,总监类,总经理类。有些决定经理可以做,如果经理不能做,那么调用其委托的总监来做,若总监也不能做,则调用其委托的总经理来做。这些代码都是在学习这些的过程中码的。。。。。
上一篇:武侠小说之令狐冲篇–适配器模式C++
下一篇:黄药师及其五大弟子功夫继承关系篇----命令模式C++实现
上代码,亲测有效!
Exe : Chain.og++ -o Exe Chain.o
main.o : Chain.cppg++ -c -g Chain.cpp
clean :rm Chain
#include <iostream>
#include <string>
using namespace std;//责任链模式class Abstract_Manage
{public:virtual void deal_with(string worker_name, int money) = 0;Abstract_Manage* p_Abstract_Manage = NULL;string Manage_Name;
};class Km : public Abstract_Manage
{public:Km(Abstract_Manage* p_Abstract_Manage, string Manage_Name);void deal_with(string worker_name, int money);
};
Km::Km(Abstract_Manage* p_Abstract_Manage, string this_Manage_Name)
{this->p_Abstract_Manage = p_Abstract_Manage;this->Manage_Name = this_Manage_Name;
}void Km::deal_with(string worker_name, int money)
{if(money < 10000){cout << this->Manage_Name << "同意" << worker_name << "加薪" << money << "元" << endl;}else{cout << "Let me tell you a story !" << endl;}
}class M : public Abstract_Manage
{public:M(Abstract_Manage* p_Abstract_Manage, string Manage_Name);void deal_with(string worker_name, int money);
};
M::M(Abstract_Manage* p_Abstract_Manage, string this_Manage_Name)
{this->p_Abstract_Manage = p_Abstract_Manage;this->Manage_Name = this_Manage_Name;
}void M::deal_with(string worker_name, int money)
{if(money < 5000){cout << this->Manage_Name << "同意" << worker_name << "加薪" << money << "元" << endl;}else{p_Abstract_Manage->deal_with(worker_name, money);}
}class Dm : public Abstract_Manage
{public:Dm(Abstract_Manage* p_Abstract_Manage, string Manage_Name);void deal_with(string worker_name, int money);
};
Dm::Dm(Abstract_Manage* p_Abstract_Manage, string this_Manage_Name)
{this->p_Abstract_Manage = p_Abstract_Manage;this->Manage_Name = this_Manage_Name;
}void Dm::deal_with(string worker_name, int money)
{if(money < 2000){cout << this->Manage_Name << "同意" << worker_name << "加薪" << money << "元" << endl;}else{p_Abstract_Manage->deal_with(worker_name, money);}
}int main(void)
{Km* p_Km = new Km( NULL, "裘千尺");M* p_M = new M(p_Km, "裘千仞");Dm* p_Dm = new Dm(p_M, "裘千丈");p_Dm->deal_with("杨过", 60000);delete p_Dm;delete p_M;delete p_Km;return 0;
}
哎呦喂ヾ(✿゚▽゚)ノ~路长馆小,雪轻帘薄,酒热乎,这位爷~您ヾ(✿゚▽゚)ノ~ 里面坐~
本公众号专注分享C++,ffmpeg,opencv等相关音视频知识
webrtc,udp,tcp,rtsp,rtmp,srt/nginx+rtmp等流媒体协议和服务器
同时也会有大厂音视频技术专家不定期直播分享…
国人开发流媒体srs服务器,及yangrtc(国人版的webrtc)协议新动向
偶尔分享下程序员梦呓碎碎念(๑•॒̀ ູ॒•́๑)啦啦啦
目前刚刚开通,接受读者的优质投稿…
鉴于国内音视频圈子小,起步晚,以致分享少,门槛高,特开通分享,一起扇动这阵风吧!
微信扫描下方二维码,关注公众号,赶快进入音视频开发者社区吧!
裘千尺裘千仞裘千丈与杨过篇--责任链模式C++实现相关推荐
- 【北行★户外】7月19日周六 闲游 密云水库、 白云峡谷、捧河湾 、千尺瀑 捞虾拾贝、戏水,一日休闲小穿越活动
<去白云峡谷 捧河湾 溯溪拾贝 捞虾捉鱼 戏水一日休闲游> 活动地点>横岑岭-五道岭-天池-千尺瀑 捧河湾 白河滩 适宜人群>休闲出游,适合身体健康喜欢运动的各类人群 集合时间 ...
- OSChina 周二乱弹 ——桃花潭水深千尺,淹死产品行不行?
2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @发型不可乱 :码代码累了就听一下魔兽主题曲,<The Dawn& ...
- 图灵奖得主杨立昆:GPT模式五年就不会有人用了,世界模型才是AGI未来
本文经授权转自公众号腾讯科技(ID:qqtech) 2023年6月9日的北京智源大会上开幕式上,机器学习三巨头之一杨立昆(Yann Lecun)进行了远程致辞,发表了名为<朝向能学习, 思考和计 ...
- 朝向能学习, 思考和计划的机器进发——图灵奖得主杨立昆:GPT模式五年就不会有人用了,世界模型才是AGI未来
目录 朝向能学习, 思考和计划的机器进发--图灵奖得主杨
- 千锋ui设计基础视频教程icon图标入门篇
Icon图标设计是ui设计师所要掌握和学习的基础技能.说到icon图标,我们不得不提及icon图标的用途. 一方面,它具有浓厚营销色彩.为什么这么说?当用户首次看到应用时,图标就是他们最先看到的东西 ...
- 杨过小龙女玉女心经篇--简单工厂模式
Mountain:终南山 Single_arm:杨过 Little_dragon_maiden:小龙女 Jade girl's Heart Sutra:玉女心经 Dust_world:尘世 being ...
- 一千个 Python 库打包,这就是一篇库的字典,哪里需要查哪里!
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- 黄药师及其五大弟子功夫继承关系篇----命令模式C++实现
学了C++基本的语法都知道继承可以让子类拥有更多的功能,除了继承还有组合,委托,也能让一个类的功能增加.设计模式,这个设计是设计继承,组合,委托,之间相互叠加的方式,让其符合业务需求. 命令模式是委托 ...
- 武侠小说之令狐冲篇--适配器模式C++
学了C++基本的语法都知道继承可以让子类拥有更多的功能,除了继承还有组合,委托,也能让一个类的功能增加.设计模式,这个设计是设计继承,组合,委托,之间相互叠加的方式,让其符合业务需求. 适配器要完场什 ...
最新文章
- 初识php异步多线程扩展swoole
- mybatis学习3之分页的实现
- 2引擎帮助文档_【虚幻4】初学者系列教程-《基础入门》#2-学习虚幻4的15个途径...
- 2022大厂面试必问要点总结
- Java多线程下载并具断点续传功能JAR
- 机器学习——HMM(隐马尔可夫模型的基本概念)(一)
- 有关于腾讯地图服务端IP定位接口的获取当前城市的处理
- Python - 进程/线程相关整理
- Floyd算法 求多源汇最短路
- Jsoup爬虫以及防反爬
- windows 本地搭建git仓库_windows局域网搭建本地git代码版本管理仓库
- Android开发屏幕适配
- 微信小程序开发前后端交互快速入门
- 老生常谈!数据库如何存储时间?你真的知道吗?
- SparkSql create table导入本地excel
- 我的世界服务器退出信息,我的世界模仿他人进入/退出服务器
- 技术状态管理(六)-技术状态审核
- 解锁网易云音乐小工具_什么?网易云音乐又变灰了
- 网速网吧服务器型号,网吧的网速为什么那么快(无盘系统为何那么快)
- R语言 无法打开文件: No such file or directory