有趣的设计模式之对象池模型

Posted 家园叮咚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有趣的设计模式之对象池模型相关的知识,希望对你有一定的参考价值。

   今天我们来介绍一下对象池模式,这种设计模式在平时的工作中使用频率不像工 厂模式那样使用频繁,但是它提供了一种新的对象使用和管理思想,还是很值得 借鉴的。

   既然提到池了,那就是某一类或者一种事物的集合,比如线程池,这里面会涉及 到把对象放到池子和从池子里面取对象的过程。

  那我们先来定义一个 Art 类:

有趣的设计模式之对象池模型

我们还需要定义一个对象池(ArtPool,来处理 Art 的入池和出池操作:

有趣的设计模式之对象池模型

有趣的设计模式之对象池模型

这里面有个比较重要的地方需要注意一下,就是:

//艺术类列表 static private $_arts = [];

这个静态变量来存储所有的 Art 对象;

调用过程和执行结果:

有趣的设计模式之对象池模型

执行结果:

   我们根据不同的 name 来获取不用的 Art 对象,这样节省了 new 时候的内存和操 作时间,主要适用于频繁创建对象和销毁对象的场景

   就像开始说,对象池模式相对比较简单,但是给我们提供了创建对象时一种比较 有意思的思路。我们也可以在创建池对象的时候,就创建整个对象集合,这样还 可以减少内存碎片,提高内存的使用效率。

以上是关于有趣的设计模式之对象池模型的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之享元模式

23种设计模式之享元模式代码实例

模型-视图-控制器是糟糕的面向对象设计吗? [关闭]

Java二十三设计模式之------享元模式

JUC并发编程 共享模式之工具 线程池 JDK 提供的线程池工具类 -- Executors 类创建线程池(创建ThreadPoolExecutor对象)

设计模式之享元模式