设计模式---享元模式
来源:互联网 发布:python range转换list 编辑:程序博客网 时间:2024/05/20 02:51
#include<iostream>
#include<map>
using namespace std;
class User
{
private:
string name;
public:
User(string name)
{
this->name = name;
}
string getName()
{
return name;
}
};
class WebSite
{
public:
virtual void Use(User *user){}
};
class ConcreteWebSite:public WebSite
{
private:
string name;
public:
ConcreteWebSite(string name)
{
this->name = name;
}
void Use(User *user)
{
cout<<"website : "<<name<<"user name: "<<user->getName()<<endl;
}
};
class WebSiteFactory
{
private:
map<string,WebSite*>m_flyweights;
public:
WebSite * GetWebSiteCategory(string key)
{
if((m_flyweights.find(key))->second == NULL )
{
m_flyweights.insert(pair<string,ConcreteWebSite*>(key,new ConcreteWebSite(key)));
}
return (WebSite *)m_flyweights[key];
}
int GetWebSiteCount()
{
return m_flyweights.size();
}
};
int main()
{
WebSiteFactory *f = new WebSiteFactory();
WebSite *fx = f->GetWebSiteCategory("produce display ");
fx->Use(new User("xiao ming"));
WebSite *fy = f->GetWebSiteCategory("produce display ");
fy->Use(new User("hong ming"));
WebSite *fz = f->GetWebSiteCategory("produce display ");
fz->Use(new User("zhang ming"));
WebSite *f1 = f->GetWebSiteCategory("bolg display ");
f1->Use(new User("lili"));
WebSite *f2 = f->GetWebSiteCategory("bolg display ");
f2->Use(new User("hehe"));
WebSite *f3 = f->GetWebSiteCategory("bolg display ");
f3->Use(new User("enen"));
cout<<"count="<<f->GetWebSiteCount()<<endl;
return 0;
}
- 设计模式---享元模式
- 设计模式 享元模式
- 设计模式 - 享元模式
- 设计模式:享元模式
- 设计模式 - 享元模式
- 设计模式-享元模式
- 设计模式---------享元模式
- 设计模式:享元模式
- 设计模式--享元模式
- 设计模式-享元模式
- 设计模式:享元模式
- 设计模式-享元模式
- 设计模式--享元模式
- 设计模式--享元模式
- 设计模式--享元模式
- 设计模式-享元模式
- 设计模式-享元模式
- 【设计模式】享元模式
- 打码的程序员和做汉堡的有什么区别!
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- java多线程-线程内存模型
- Shiro权限控制 ---base64加密、MD5加密
- echarts中的事件触发(legend)
- 设计模式---享元模式
- word 2007打开总是配置窗口出现的解决办法
- 使用EPPLUS快速转换Excel
- C语言经典程序一
- python导入py文件报错怎么办
- CSU
- 解决weka API读取Oracle10g数据库中date型数据出错问题
- STM32启动代码解析
- java线程类Thread中的方法