// ChainOfResponsibilityPattern.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;//request
class Request
{
public:int m_nNumber;
};//manager
class Manager
{
protected:string m_strName;Manager* manager;public:Manager(string temp) { m_strName = temp; }void SetSuccessor(Manager* temp) { manager = temp; }virtual void GetRequest(Request* request) = 0;
};//经理
class CommonManager : public Manager
{
public:CommonManager(string temp) :Manager(temp) {}virtual void GetRequest(Request *request);};void CommonManager::GetRequest(Request *request)
{if (request->m_nNumber >= 0 && request->m_nNumber < 1000){cout << m_strName << " deal " << request->m_nNumber << endl;}else{manager->GetRequest(request);}
}//总监
class Majordomo : public Manager
{
public:Majordomo(string temp) :Manager(temp) {}virtual void GetRequest(Request *request){if (request->m_nNumber <= 5000){cout << m_strName << " deal " << request->m_nNumber << endl;}else{manager->GetRequest(request);}}};//总经理class GeneralManager : public Manager
{
public:GeneralManager(string temp) :Manager(temp) {}virtual void GetRequest(Request *request){cout << m_strName << " deal " << request->m_nNumber << endl;}};int main()
{Manager *common = new CommonManager("张经理");Manager *major = new Majordomo("李总监");GeneralManager *general = new GeneralManager("赵总");common->SetSuccessor(major);major->SetSuccessor(general);Request *rq = new Request();rq->m_nNumber = 999;common->GetRequest(rq);rq->m_nNumber = 4999;common->GetRequest(rq);rq->m_nNumber = 6000;common->GetRequest(rq);delete rq;delete major;delete common;delete general;return 0;
}

责任链模式-C++实现相关推荐

  1. Chain of Responsibility 责任链模式 MD

    责任链模式 简介 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链,请求在这个链上[传递],直到链上的某一个对象决定处理此请求.发出这个请求的客户 ...

  2. Java 责任链模式

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

  3. 设计模式之五 责任链模式(Chain of Responsibility)

    2019独角兽企业重金招聘Python工程师标准>>> 一. 场景 相信我们都有过这样的经历: 我们去职能部门办理一个事情,先去了A部门,到了地方被告知这件事情由B部门处理: 当我们 ...

  4. 一起学设计模式 - 责任链模式

    责任链模式(ChainOfResponsibilityPattern)属于 行为型模式的一种,将请求沿着一条链传递,直到该链上的某个对象处理它为止. 概述 定义如下:一个请求有多个对象来处理,这些对象 ...

  5. 采购申请的处理流程 --- 责任链模式

    前情提要 上集讲到小光梳理了公司的组织架构, 利用组合模式建立起了一个可扩展变化的多层的组织架构体系. 更清晰地明确了公司各个层级, 各个部门的职责. 大家明确职责, 通力合作, 让"小光热 ...

  6. 折腾Java设计模式之责任链模式

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

  7. 设计模式(9)-责任链模式详解(易懂)

    责任链模式的定义 责任链模式是一种设计模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道 ...

  8. 最近学习了责任链模式

    2019独角兽企业重金招聘Python工程师标准>>> 前言 来菜鸟这个大家庭10个月了,总得来说比较融入了环境,同时在忙碌的工作中也深感技术积累不够,在优秀的人身边工作必须更加花时 ...

  9. 设计模式第七讲-责任链模式

    简介 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止. 图例 责任链-根据事情大小来决 ...

  10. 工厂模式、策略者模式、责任链模式综合应用

    设计模式的具体运用: 简单工厂模式.策略者模式.责任链模式定义与使用 classLoader的具体运用 自定义的classloader 来动态加载类 程序功能设计: 在商城购物时,商城可能会在特殊的日 ...

最新文章

  1. JQuery模板插件jquery.tmpl-动态ajax扩展
  2. java 网络(socket)
  3. capsule 安装_CAPSULE SERVANT安卓版下载-CAPSULE SERVANT手游app安装-菜鸟下载
  4. Unusual Competitions CodeForces - 1323C(思维)
  5. 机器学习的练功方式(六)——朴素贝叶斯
  6. java basic data type,java基本数据类型--Basic Datatypes
  7. 我php第一个页面,PHP 第一个 PHP 页面 - 第一个 PHP 页面 - phpStudy
  8. 组态王登录服务器为空,组态王服务器与客户端配置
  9. 字符串全排列 java实现
  10. img标签,图片占位
  11. 力扣周赛 第282场 Java题解
  12. SQL 高级教程:SQL BETWEEN 操作符
  13. 【esp32-adf】按键服务源码分析
  14. Ubuntu系统下创建本地源
  15. 数字化转型服务管理与VeriSM(1):灵魂三问
  16. BFE原生路由转发功能分析
  17. 深度学习:神经网络中的前向传播和反向传播算法推导
  18. HEX,S19互相转换
  19. 考系统集成项目管理工程师,报班还是自学?
  20. 网库“团计划”帮助企业搭乘团购快车

热门文章

  1. 黑马Redis学习笔记 (基础篇+实战篇)
  2. 如何学习vc++(vc的用处)
  3. 【CTF WriteUp】2023数字中国创新大赛网络数据安全赛道决赛WP(1)
  4. 2022年阿里全球数学竞赛中的集福活动(附代码解答)
  5. 随机变量的相关性与独立性
  6. Python计算机视觉编程第十章——OpenCV基础知识
  7. 到底什么是类脑计算?
  8. 浅谈Red Hat和 Centos7
  9. Postgresql默认用户名与密码
  10. win7 锁定后硬盘灯常亮