vector
};
//测试
int main(int argc,char* argv[])
{
FlyweightFactory* fc = new FlyweightFactory();
//不同的对象,享元工厂将会创建新的享元类
Flyweight* fw1 = fc->GetFlyweight("Object A");
Flyweight* fw2 = fc->GetFlyweight("Object B");
//相同的对象,享元工厂将会使用一个已创建的享元类
Flyweight* fw3 = fc->GetFlyweight("Object A");
return 0;
}
三. 说明
1. 享元工厂类是重点,因为它创建并管理享元对象,对没有的对象它会创建,对已有的对象它会提供一个已创建的实例。
2. 可以想像有一个对象池,里面都是一些享元类,享元工厂的作用就是从对象池里取对象。
3. 它的目的是大幅度地减少需要实例化的类的数量。
摘自 lwbeyond