Sobes.tech
Back to questions
Junior — Middle
68

Объясните принцип работы паттерна Singleton и в чем его основное назначение.

Companies where asked
ТОП КЕЙС

Answer from AI

sobes.tech AI

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

Основное назначение — контролировать создание объекта, чтобы избежать множества экземпляров, например, для управления конфигурацией, логированием или доступом к ресурсам.

Пример реализации 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;
        }
    }
}

Здесь конструктор приватный, чтобы нельзя было создать объект извне, а доступ к экземпляру идет через статическое свойство Instance с двойной проверкой блокировки для потокобезопасности.