Repaso
English

¿Cuál es la principal crítica al patrón Singleton?

Opciones

  1. Usa demasiada memoria para el único objeto que guarda
  2. Añade estado global oculto, lo que dificulta los tests y el paralelismo (Opción correcta)
  3. No se puede implementar en algunos lenguajes, como Python
  4. Siempre es más lento que una clase normal

Respuesta

Introduce estado global oculto y dificulta los tests y el paralelismo

Por qué

Un Singleton garantiza que solo existe una instancia de una clase y deja que cualquiera la tome desde cualquier sitio.

Eso es básicamente una variable global: el código depende de ella en silencio, los tests comparten su estado y se interfieren, y es difícil de reemplazar por un fake.

Prefiere crear una instancia al arrancar y pasársela a quien la necesite (dependency injection).

Recuerda

Singleton = estado global disfrazado. Mejor inyectar la instancia.

Términos clave

Practica esta pregunta en Repaso