Modelul Singleton asigură că o clasă are doar o singură instanță și oferă un punct global de acces la aceasta. Este folosit atunci când exact un obiect ar trebui să coordoneze ceva (o configurare, un pool de conexiuni, un logger), deși este și oarecum controversat.
Ce face 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
