6 Flyweight

Davids 2025-08-10 05:15:12
Categories: > > Tags:

享元模式:

大量 细粒度 的对象,有很高的运行时代价(主要指内存)。
运用 共享 技术,有效地支持大量 细粒度 的对象。(例如 字符串、线程池)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Small {
public:
std::string key;
Small(const std::string& key){}
}

class SmallFactory {
private:
std::map<std::string, Small*> SmallPool;
public:
Small* GetSmall(const std::string& key){
auto item = SmallPool.find(key);
if (item == SmallPool.end())
{
Small* small = new Small(key);
SmallPool[key] = small;
}
return SmallPool[key];
}
}