Farlanki

对象池模式

字数统计: 542阅读时长: 1 min
2015/11/10 Share

#对象池#

对象池

对象池设计模式是单例模式的一种演变.与单例模式的访问一个对象不同,对象池模式提供访问多个对象的方法.对象池模式在要在多个类似对象中取得一个对象的情况下比较常用.

过程

  1. 初始化.被管理的对象集合在这步准备好.
  2. checkout.需要对象的元素从池中借走一个对象.
  3. 使用对象.这步不需要池的任何动作.被使用的对象不能被其他元素借走.
  4. check-in.元素归还借走的对象.

策略

对象创建策略

对象池中的对象可以一次性创建,也可以在被需要时再创建,成为惰性创建.一次性创建使得初始化对象的代价在他们被需求之前就已经显现.而惰性创建可以让创建对象的花销较小.

对象复用策略

最简单的方法是使用信任策略,意味着你相信被返回到池的对象都是可用的.与之相对的,使用不信任策略,意味着对象在返回池之前会被检查它们是否可以再次被使用.

空池策略

顾名思义,空池策略着眼于在池中没有对象时池的行为.最简单的方法是采用阻塞策略,意味着请求对象的线程会被一直堵塞知道池中重新出现了对象.堵塞策略可能会影响程序的性能.在与不信任策略一起使用时,堵塞策略可能会让程序堵塞.
请求失败策略是另一种方法.在请求对象前,请求者要指出能等待的最长的时间.一个失败的请求意味着我们要事先准备一个应对这种情况,请求不了对象,的解决方案.

分配策略

分配策略决定了一个可用的对象是怎么被分配去满足一个请求的.常见的方法有先进先出最少使用优先.

CATALOG
  1. 1. 对象池
  2. 2. 过程
  • 策略
    1. 1. 对象创建策略
    2. 2. 对象复用策略
    3. 3. 空池策略
    4. 4. 分配策略