问题 / 用途
在某些时候会遇到需要频繁创建和释放对象的场景(例如游戏中),对象的频繁创建和释放会导致内存碎片的产生和内存空间的频繁分配,从而降低性能。
对象池的作用便是解决这个问题。
思路 / 原理
对象池的解决方法是通过一个「缓存」来提前存储需要用的实例,在需要的时候从缓存中「取出」,使用结束后再「存回」对象池中。
我们可以使用数组或者栈等内存连续的数据结构来实现「缓存」,在想要「取出一个实例」时,结构中的对象引用给出去,并在使用结束后调用「存回」让实例不可用并清除使用的数据。
如图:
实现
懒得写。回头写了再贴代码。