本文首发于 http://www.YoungZY.com/
原文网址:Object Pool Pattern
意图
对象池对性能有显著的提升。在以下场景中最有效:实例化过程复杂的对象;实例化频率高的对象;同一时刻用到的实例数量较少。
问题
对象池(也叫资源池)是用来管理对象缓存的。一个使用了对象池的客户端可以请求对象池中已经存在的实例,而不用自己创建。一般来说,这个对象池是可以自动增长的,当它是空的时候可以自己创建对象。或者我们可以限定对象池的大小。
将所有可重复使用的、当前未使用的对象放在同一个对象池中以保证其连贯性是有必要的。为了达到这个目的,对象池应该是单例的。
讨论
对象池允许其他程序从中获取对象,当用完后在放回池中,以便下次再用。
但是我们不会一直等着某个对象被释放,所以在必要的时候对象池可以创建新的对象,但一定要有定期清理未使用的对象的机制。
近期评论