每天一个模式 - Object Pool Pattern

Introduction

对象池模式一般用来管理一组可重用对象,以供调用组件使用,它可以为组件提供多个完全相同的对象。

Advantage:

  1. 节省了创建类的实例的开销;
  2. 节省了创建类的实例的时间;

Disadvantage:

  1. 存储空间随着对象的增多而增大;

Object Pool 适用在什么地方?

  1. 类的实例可重用;
  2. 类的实例化过程开销较大;
  3. 类的实例化的频率较高;
  4. 类的使用周期有限,在周期结束后回收对象;

Practice

  1. 初始化,准备需要的对象集合;
  2. 借出对象,需要对象的组件从池子中借出对象;
  3. 组件使用借到的对象完成任务,对象池保证这个对象在其被归还之前不会再借给其他组件;
  4. 组件返回对象给对象池;

Reference