0
点赞
收藏
分享

微信扫一扫

量化交易之设计模式篇 - 享元模式


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

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

/*
* 享元模式
*/
class WebSite {
public:
virtual void use() = 0;
};

class ConcreteWebSite: public WebSite {
public:
ConcreteWebSite(string name): m_name(name) {}
virtual void use() {
std::cout << "web div: " << this->m_name << std::endl;
}

private:
string m_name;
};

class UnShareWebSite: public WebSite {
public:
UnShareWebSite(string name): m_name(name) {}
virtual void use() {
std::cout << __FUNCTION__ << ": " << this->m_name << std::endl;
}

private:
string m_name;
};

class WebFactory {
public:
WebSite* getWeb() {
return *(this->websites.begin());
}
WebFactory() {
websites.push_back(new ConcreteWebSite("test"));
}

private:
vector<WebSite*> websites;
};


int main() {
WebFactory* factory = new WebFactory();
WebSite* webSite = factory->getWeb();
webSite->use();

WebSite* webSite2 = factory->getWeb();
webSite2->use();

// 不共享的类
WebSite* webSite3 = new UnShareWebSite("test");
webSite3->use();

return 0;
}

举报

相关推荐

0 条评论