Przejdź do treści głównej
INF.04Programowanie Obiektowe i Paradygmaty (OOP)

Wzorzec Singleton (Singleton Pattern)

Kreacyjny wzorzec projektowy gwarantujący, że klasa ma tylko jedną instancję w całej aplikacji oraz zapewniający do niej globalny punkt dostępu.

Kluczowe cechy implementacji Singletona:

  1. Prywatny konstruktor (private Singleton()) – uniemożliwia utworzenie instancji operatorem new z zewnątrz.
  2. Prywatne statyczne pole przechowujące jedyną instancję.
  3. Publiczna statyczna metoda / właściwość (np. GetInstance() lub Instance) zwracająca tę instancję.
CSHARP
public class DatabaseManager {
    private static DatabaseManager _instance;
    private static readonly object _lock = new object();

    private DatabaseManager() { } // Prywatny konstruktor

    public static DatabaseManager Instance {
        get {
            if (_instance == null) {
                lock (_lock) {
                    if (_instance == null) _instance = new DatabaseManager();
                }
            }
            return _instance;
        }
    }
}

Chcesz sprawdzić to pojęcie w praktyce?

Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Wzorzec Singleton (Singleton Pattern) lub rozpocznij trening.