Sobes.tech
Junior — Middle

Wyjaśnij koncepcję wzorca Singleton i jego zastosowanie w programowaniu.

sobes.tech AI

Odpowiedź od AI

Wzorzec Singleton gwarantuje, że klasa ma tylko jedną instancję i zapewnia globalny punkt dostępu do tej instancji.

Używany jest, gdy konieczne jest kontrolowanie dostępu do zasobów, takich jak baza danych, logger lub konfiguracja.

Przykład w C#:

public class Singleton
{
    private static Singleton _instance;
    private static readonly object _lock = new object();

    // Prywatny konstruktor uniemożliwia tworzenie instancji spoza klasy
    private Singleton() { }

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

    public void DoSomething()
    {
        // Logika
    }
}

Takie podejście zapewnia bezpieczeństwo w środowiskach wielowątkowych i leniwą inicjalizację instancji.