El patrón Singleton asegura que una clase tenga solo una instancia y proporciona un punto de acceso global a ella. Se utiliza cuando exactamente un objeto debe coordinar algo (una configuración, un pool de conexiones, un logger), aunque también es algo controvertido.
Qué hace Singleton
SINGLETON → guarantee a class has only ONE instance, with global access to it:
→ the class controls its own instantiation (private constructor)
→ returns the SAME instance every time it's requested
→ for: things there should only be ONE of, accessed from many places
