当Client需要一个Flywweight时,从FlyweightFactory获得,如果工厂没有则创建,如果存在则返回其指针,但工厂仍然保存此指针,当下一个需求到来时,同样返回此指针
这实际上是我们游戏资源管理方式,Flyweight保存了一个使用计数,每次从工厂取出一个资源时,计数+1,从工厂释放一个资源时,计数-1,当计数为0时则删除资源,并且,当计数减为0时,任然不释放资源,将此指针放入一个回收池中,此回收池是一个先进先出队列,如果在真正释放之前需要用到这个资源,则使用计数+1并将其移出回收池放入FlyweightFactory中