代码拉取完成,页面将自动刷新
#include <iostream>
#include <map>
using namespace std;
/**************************************
通过共享的方式有效的支持大量细粒度的对象
主要解决的是某个对象需要用到很多次则将其缓存下来每次使用在查找出来避免了数据的重复创建和多个副本的开辟
**************************************/
class Font{
private:
string key;
public:
Font(const string & key)
{
}
Font(){
}
};
class FontFactory{
private:
map<string,Font *>fontPool;
public:
Font *GetFont(const string key)
{
auto FontFind = fontPool.find(key);
if(FontFind == fontPool.end())
{
Font *font = new Font(key);
fontPool.insert(make_pair(key,font));
return font;
}
else{
return FontFind->second;
}
}
};
int main(void)
{
FontFactory font;
Font t = font.GetFont("宋体");//这个时候就会创建一个对象然后放入对象工厂
//下次 在使用宋体的时候那么就是直接读取了 不是重新创建
//这适合 使用量比较大的场景 有效解决了对象重复开辟是否所使用的开销
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。