Sobes.tech
Back to questions
Junior — Middle
92

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

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;
        }
    }
}

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