0
点赞
收藏
分享

微信扫一扫

量化交易之设计模式篇 - 责任链模式


//
// Created by win10 on 2021/11/16.
//

#include <iostream>
#include <vector>
using namespace std;

/*
* 责任链模式
*/
class Request {
public:
string m_content;
int m_number;
};

class Manager {
public:
Manager(string temp) {
this->name = temp;
}
void setSuccessor(Manager* temp) {
this->manager = temp;
}
virtual void getRequest(Request* request) = 0;

protected:
Manager* manager;
string name;
};

class CommonManager: public Manager {
public:
CommonManager(string str): Manager(str) {}
virtual void getRequest(Request* request) {
if (request->m_number >= 0 && request->m_number < 10) {
std::cout << this->name << "deal " << request->m_number << std::endl;
} else {
manager->getRequest(request);
}
}
};

class MajorDemo: public Manager {
public:
MajorDemo(string str): Manager(str) {}
virtual void getRequest(Request* request) {
if (request->m_number >= 10) {
std::cout << this->name << "deal " << request->m_number << std::endl;
}
}
};


int main() {

Manager* common = new CommonManager("manager zhang");
Manager* major = new MajorDemo("manager zhang");

common->setSuccessor(major);

Request* request = new Request();
request->m_number = 33;
common->getRequest(request);

request->m_number = 3;
common->getRequest(request);

return 0;
}

举报

相关推荐

0 条评论