Na dwoje babka wróżyła
Czarna owca wśród wzorców projektowych – singleton. Często nazywany antywzorcem – źle. Trochę źle. Singleton w zależności od tego jak będzie używany będzie wykazywać cechy wzorca lub antywzorca.
Antywzorzec
Singleton jako zmienna globalnie dostępna, każdy może do niego sięgnąć i korzystać. Inny, bardziej obiektowy sposób na statyczne/globalne zmienne.
Wzorzec
Obiekt posiadający tylko jedną instancje w danym cyklu życia, każdy próba stworzenia nowego obiektu zwraca ciągle ten sam obiekt. Wariacje na temat singletona gdy zezwalamy na N – jednocześnie żywych obiektów.
Jak?
Jak poprawnie zaimplementować singletona? Nie implementować! Skorzystać z dobrodziejstwa kontenerów IOC i w ten sposób rozwiązać problem. Każdy inny sposób można zrobić tylko i wyłącznia dla siebie i celów dydaktycznych, a różne poprawne rozwiązania znaleźć można na internetach.