责任链模式-C++实现
来源:互联网 发布:access数据库的扩展名 编辑:程序博客网 时间:2024/05/29 10:46
// ChainOfResponsibilityPattern.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>using namespace std;//requestclass Request{public:int m_nNumber;};//managerclass 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;}
1 0
- 责任链模式-C++实现
- C语言实现责任链
- 设计模式---责任链模式(C++实现)
- 设计模式--责任链模式--Java实现
- mina中责任链模式的实现
- 责任链模式的c++代码实现
- 责任链模式的实现和理解
- 责任链模式(java语言实现)
- 责任链模式的简单实现
- C语言和设计模式(责任链模式)
- C语言和设计模式(责任链模式)
- C语言和设计模式(责任链模式)
- 19.C语言和设计模式(责任链模式)
- 8、C语言和设计模式(责任链模式)
- 设计模式---责任链模式(C++实现)
- 行为型模式之责任链模式实现
- 《大话设计模式》java实现之责任链模式
- 责任链模式
- Hibernate(Hql)
- 欢迎使用CSDN-markdown编辑器
- NYOJ-116-士兵杀敌(二)
- 使用Eclipse连接hbase1.1 hadoop2.6
- python中用字符串来调用函数
- 责任链模式-C++实现
- linux 命令与文件的查询
- 法桐啊,法桐呀
- 关于架构的一些自己的想法
- 匿名详解第一步
- Buffer类详解
- Struts2中Action需要用Servlet API的方法
- ubuntu14.04云服务器 phpstudy 搭建wordpress博客
- C++ 对16进制字符串进行偶校验