18 Lut

Wzorzec projektowy Singleton w C#

W ramach przypomnienia: Singleton to wzorzec projektowy wykorzystywany w dużych aplikacjach np. w odniesieniu do połączenia z bazą danych.

Przykład dla aplikacji jednowątkowych:

Przykład dla aplikacji wielowątkowych:

Charakterystyczne elementy singletona:
– prywatny konstruktor, który wyklucza tworzenie instancji poza obiektem,
– prywatne, statyczne pole reprezentujące jedyną instancję singletonu,
– metoda dostępowa zwracająca instancję singletona – sprawdza czy pole instancji nie jest puste i jeżeli jest, to tworzy nowy obiekt (najczęściej przy pierwszej próbie użycia, forma lazy initialization)

Użycie sealed uniemożliwia dziedziczenie ponieważ nie chcemy by stworzona została klasa potomna pozwalająca tworzyć kolejne instancje.