Matka jest tylko jedna.
Gdy możesz pozwolić na utworzenie tylko jednego obiektu danej klasy, użyj wzorca projektowego Singleton.
Użyj wzorca Singleton jeśli:
- chcesz zachować porządek i wymusić istnienie pojedynczego obiektu danej klasy, np. Settings,
- chcesz by nie było możliwości nadpisania tego pojedynczego obiektu,
- chcesz mieć globalny, ale bezpieczny dostęp do pojedynczego obiektu.
Singleton posiada prywatny konstruktor, którego nie da się wywołać spoza metod klasy. Może to zrobić jedynie metoda getInstance, która:
- tworzy obiekt jeśli nie został on wcześniej utworzony
- zapisuje obiekt w polu $instance
- zwraca pole $instance