Паттерн Singleton гарантирует, что класс имеет только один экземпляр на протяжении всей жизни приложения и предоставляет глобальную точку доступа к этому экземпляру. Это достигается за счёт приватного конструктора и статического свойства, которое контролирует создание экземпляра.
Lazy<T> для потокобезопасной ленивой инициализацииПаттерн Singleton идеален для сценариев, требующих:
public class Singleton
{
private static readonly Lazy<Singleton> lazyInstance =
new (() => new Singleton());
private Singleton() { }
public static Singleton Instance => lazyInstance.Value;
}
Использование Lazy<T> даёт несколько плюсов:
Обращайся к экземпляру singleton глобально через Singleton.Instance — это гарантирует, что ты всегда получишь один и тот же объект на протяжении всей жизни приложения.
Приватный конструктор в паттерне Singleton предотвращает прямое создание экземпляров класса внешними классами, гарантируя, что только статическое свойство может контролировать создание экземпляра.
Новый — ещё не проверен сообществом
Вы