《大话设计模式》读书笔记之C++实现--chapter26享元模式
来源:互联网 发布:hadoop mac 安装 编辑:程序博客网 时间:2024/05/16 16:05
#include <iostream>#include <list>#include <string>#include <map>#include <QDebug>using namespace std;class FlyWeight{public: virtual void Operation() = 0; virtual ~FlyWeight(){}};class ConcreteFlyWeight:public FlyWeight{public: explicit ConcreteFlyWeight(string Id):m_ID(Id){} void Operation() { cout << "ConcreteFlyWeight: " << m_ID <<" Run" << endl; }private: string m_ID;};class FlyWeightFactory{public: FlyWeight* GetFlyWeight(string FlyWeightID) { auto iter = m_FlyWeightMap.find(FlyWeightID); if(iter == m_FlyWeightMap.end()) m_FlyWeightMap.insert(map<string,FlyWeight*>::value_type(FlyWeightID,new ConcreteFlyWeight(FlyWeightID))); return m_FlyWeightMap[FlyWeightID]; } int GetFlyWeightCount() { return m_FlyWeightMap.size(); }private: map<string,FlyWeight*> m_FlyWeightMap;};int main(int argc,char** argv){ FlyWeightFactory *flyWeightFactory = new FlyWeightFactory(); FlyWeight* concreteFlyWeight = flyWeightFactory->GetFlyWeight("ConcreteFlyWeight"); FlyWeight* concreteFlyWeight1 = flyWeightFactory->GetFlyWeight("ConcreteFlyWeight1"); FlyWeight* concreteFlyWeight2 = flyWeightFactory->GetFlyWeight("ConcreteFlyWeight1"); concreteFlyWeight->Operation(); concreteFlyWeight1->Operation(); concreteFlyWeight2->Operation(); cout << "flyWeightFactory 拥有的实例个数为:" << flyWeightFactory->GetFlyWeightCount(); return 0;}
阅读全文
0 0
- 《大话设计模式》读书笔记之C++实现--chapter26享元模式
- 大话设计模式读书笔记之享元模式
- 《大话设计模式》java实现之享元模式
- 大话设计模式之享元模式
- 大话设计模式之享元模式
- 大话设计模式之享元模式
- 大话设计模式之享元模式
- 《大话设计模式》读书笔记之C++实现--chapter7代理模式
- 《大话设计模式》读书笔记之C++实现--chapter23命令模式
- 《大话设计模式》读书笔记之C++实现--chapter24命令模式
- 大话设计模式--享元模式 Flyweight -- C++实现实例
- 大话设计模式读书笔记之策略模式
- 大话设计模式读书笔记之策略模式
- 大话设计模式读书笔记之原型模式
- 大话设计模式读书笔记之外观模式
- 大话设计模式读书笔记之观察者模式
- 大话设计模式读书笔记之状态模式
- 大话设计模式读书笔记之适配器模式
- SpringMVC在tomcat中的执行原理和过程
- 笔记:人脸识别概述
- BP神经网络-(参考游戏编程中的人工智能技术)
- centos 6.4 安装activmq-5.11.1
- SpringCloud(第 032 篇)配置服务端ClientServer对配置文件内容进行RSA加解密
- 《大话设计模式》读书笔记之C++实现--chapter26享元模式
- pyspark-Frequent Pattern Mining
- 白痴理解的SOAP/Web Service/WSDL关系
- 定时器
- 数据导入
- Spring Boot (九):过滤器、拦截器、监听器
- MD_behavior_nestedscroll
- Django REST FrameWork中文教程4:验证和权限
- 开发过程中遇到的一些编码问题怎么解决