Está en la página 1de 9

Patrón de diseño creacional

Object Pool

Natalia Jiménez Julio


¿Qué es Object Pool?
Este es un patrón muy utilizado cuando se requiere trabajar con
una gran cantidad de objetos, los cuales son
computacionalmente caros de crear y se pretende reducir el
consumo de memoria RAM y a su vez mejorar el uso de la CPU.

Este patrón tiene una gran ventaja en escenarios donde nuestro


programa requiere dichos objetos por un tiempo muy corto y que
luego de su uso son desechados. Nos permite reutilizar los
objetos con el fin de evitar la tarea de crearlos cada vez que
nuestra aplicación los requiere, manteniendo así un almacén de
objetos creados previamente para ser utilizados.
¿Cuándo usarlo?

Si queremos trabajar con una gran cantidad de


objetos que son muy costosos de instanciar y
cada objeto será necesitado solo durante un
corto periodo de tiempo.

Como ejemplo en un videojuego, podemos


usarlo cuando se requiere de muchas
partículas, o muchos enemigos, o balas de una
nave, entre otras cosas.
Problema

Se diseña un juego en el espacio en el cual


una nave pequeña tiene que derribar a la
nave maestra con balas (pokeballs), cada vez
que se realiza un disparo, una nueva
instancia de pokeball se crea y se destruye
hasta que choca con la nave o un muro
invisible, al disparar repetidamente se crean
muchas instancias de balas, esto hace
ineficiente el juego.
¿Cómo se utiliza?

Condiciones:
Cliente
Object Pool
Objetos
Script Player

Script Object Pool


Script Bala
Sin Object
Pool

Con Object
Pool
El concepto del día

Arraylist
Es una clase que permite almacenar
datos en memoria de forma similar a
los Arrays, con la ventaja de que el
numero de elementos que almacena,
lo hace de forma dinámica, es decir,
que no es necesario declarar su
tamaño como pasa con los Arrays.

Para más información:


https://guru99.es/how-to-use-arraylist-in-java/
https://jarroba.com/arraylist-en-java-ejemplos/
Referencias
- https://desarrolloyarquitecturadesoftware.wordpress.com/2020/11/24/matias-creimerman-guia-de-
patrones-de-diseno-patrones-de-creacion-object-pool/

- https://reactiveprogramming.io/blog/es/patrones-de-diseno/object-pool

- https://gamedevn.wordpress.com/2015/09/27/optimizacion-rendimiento-videojuego-object-pool-
pattern/

- https://www.youtube.com/watch?v=YCHJwnmUGDk

- https://www.youtube.com/watch?v=ZYs5RwHyTSU

También podría gustarte