享元模式
来源:互联网 发布:阿里云解析怎么用 编辑:程序博客网 时间:2024/06/14 02:07
MyCharacter.h
#include <iostream>
using namespace std;
class MyCharacter{
char myChar;
public:
MyCharacter(char c);
void display();
};
MyCharacter.cpp
#include "MyCharacter.h"
MyCharacter::MyCharacter(char c){
myChar = c;
}
void MyCharacter::display(){
cout<<myChar<<endl;
}
MyCharacterFactory.h
#include "MyCharacter.h"
#include <map>
using namespace std;
class MyCharacterFactory{
map<char, MyCharacter*>* pool;
public:
MyCharacterFactory();
MyCharacter* getCharacter(char c);
};
MyCharacterFactory.cpp
#include "MyCharacterFactory.h"
MyCharacterFactory::MyCharacterFactory(){
pool=new map<char, MyCharacter*>();
}
MyCharacter* MyCharacterFactory::getCharacter(char c){
MyCharacter* myChar;
map<char, MyCharacter*>::iterator iter;
iter=pool->find(c);
if(iter==pool->end()){
myChar= new MyCharacter(c);
pool->insert(map<char,MyCharacter*>::value_type(c,myChar));
}else{
myChar=iter->second;
}
return myChar;
}
Client
#include "MyCharacterFactory.h"
void main(){
//MyCharacter* myChar1 = new MyCharacter('a');
//MyCharacter* myChar2 = new MyCharacter('b');
//MyCharacter* myChar3 = new MyCharacter('a');
//MyCharacter* myChar4 = new MyCharacter('d');
MyCharacterFactory* fac = new MyCharacterFactory();
MyCharacter* myChar1 = fac->getCharacter('a');
MyCharacter* myChar2 = fac->getCharacter('b');
MyCharacter* myChar3 = fac->getCharacter('a');
MyCharacter* myChar4 = fac->getCharacter('d');
myChar1->display();
myChar2->display();
myChar3->display();
myChar4->display();
if(myChar1==myChar3){
cout<<"true"<<endl;
}else{
cout<<"false"<<endl;
}
}
输出结果为
- 深入浅出享元模式
- 享元模式
- 享元(FlyWeight)模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式Flyweight
- 享元模式
- 享元模式
- 享元模式
- FlyWeight 享元模式
- 享元模式(Flyweight)
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式 ---flyweight
- java object 转 double
- MyISAM与Innodb引擎的特点和区别 (MySQL面试)
- unity移动端操作方式(旋转、缩放手势)总结
- 文件指针和文件描述符的区别
- navigator.userAgent.indexOf来判断浏览器类型
- 享元模式
- 利用web_custom_request函数进行接口测试
- 关于Python中pip安装包时超时
- ELK日志系统原理文档
- 3台机器配置spark-2.1.0集群
- jsp 实现动态网页开发 登录小例子
- JQuery AJAX提交中文乱码的解决方案
- 机器学习经典算法详解及Python实现--聚类及K均值、二分K-均值聚类算法
- 一个Android小菜鸟的成长之路