Tiempo de lectura: 3 minutos

Patrones de diseño: Patrón Singleton

El patrón Singleton es un patrón que garantiza que una clase sólo tenga una instancia, y proporciona un punto de acceso global a ella. Este patrón tiene que ver con el proceso de creación de objetos, por tanto podemos decir que el patrón Singleton es un patrón de creación.

En ocasiones, en nuestras aplicaciones necesitamos que algunas clases tengan limitadas el número de instancias: conexión a base de datos, colas, etcétera. Aunque podríamos pensar en usar una variable global, esta propuesta no evita que se pueda limitar el número de instancias a la clase. Una solución válida es usar este patrón para limitar el número de objetos creados. Lo habitual es limitarlo a una sólo instancia, aunque se podría extender a una cantidad limitada por nosotros.


Veamos ahora un ejemplo de una clase que implementa un patrón Singleton.

 

 

Este patrón también es considerado como un ‘anti-patrón’ debido a que  es muy difícil testear código con el uso de patrones Singleton ya que guarda siempre la misma referencia y durante los test no podremos cambiarla si lo necesitáramos, aunque siempre hay algún truco que ya veremos más adelante 😉

Pese a esto, siempre encontrará alguna utilidad en tu código donde requieras una única instancia o que el valor no cambie nunca en tu código, ahí, acuérdate de este patrón y olvídate de las variables estáticas 😉

 

Bibliografía: