有趣的设计模式之对象池模型
Posted 家园叮咚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有趣的设计模式之对象池模型相关的知识,希望对你有一定的参考价值。
今天我们来介绍一下对象池模式,这种设计模式在平时的工作中使用频率不像工 厂模式那样使用频繁,但是它提供了一种新的对象使用和管理思想,还是很值得 借鉴的。
既然提到池了,那就是某一类或者一种事物的集合,比如线程池,这里面会涉及 到把对象放到池子和从池子里面取对象的过程。
那我们先来定义一个 Art 类:
我们还需要定义一个对象池(ArtPool),来处理 Art 的入池和出池操作:
这里面有个比较重要的地方需要注意一下,就是:
//艺术类列表 static private $_arts = [];
这个静态变量来存储所有的 Art 对象;
调用过程和执行结果:
执行结果:
我们根据不同的 name 来获取不用的 Art 对象,这样节省了 new 时候的内存和操 作时间,主要适用于频繁创建对象和销毁对象的场景。
就像开始说,对象池模式相对比较简单,但是给我们提供了创建对象时一种比较 有意思的思路。我们也可以在创建池对象的时候,就创建整个对象集合,这样还 可以减少内存碎片,提高内存的使用效率。
以上是关于有趣的设计模式之对象池模型的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 共享模式之工具 线程池 JDK 提供的线程池工具类 -- Executors 类创建线程池(创建ThreadPoolExecutor对象)