Das Muster Singleton stellt sicher, dass eine Klasse nur eine Instanz hat und bietet einen globalen Zugriffspunkt darauf. Es wird verwendet, wenn genau ein Objekt etwas koordinieren sollte (eine Konfiguration, einen Verbindungspool, einen Logger), obwohl es auch etwas umstritten ist.
Was Singleton tut
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
