Le pattern Singleton garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à celle-ci. Il est utilisé quand exactement un objet doit coordonner quelque chose (une configuration, un pool de connexions, un logger), bien qu'il soit aussi quelque peu controversé.
Ce que fait 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
