Sobes.tech
Junior — Middle
83

Объясните концепцию паттерна Singleton и его использование в программировании.

Companies where asked
ФинГрад

Answer from AI

sobes.tech AI

Паттерн Singleton гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.

Используется, когда нужно контролировать доступ к ресурсам, например, к базе данных, логгеру или конфигурации.

Пример на C#:

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

    // Приватный конструктор запрещает создание экземпляров извне
    private Singleton() { }

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

    public void DoSomething()
    {
        // Логика
    }
}

Такой подход обеспечивает потокобезопасность и ленивую инициализацию экземпляра.