🔥 Объясни, что такое паттерн Singleton и как его можно реализовать в C#
Паттерн 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;
}
}
// Пример метода класса
public void SomeMethod()
{
// Здесь может быть логика метода
}
}
В этом примере реализован потокобезопасный подход с использованием блокировки (lock) для предотвращения создания нескольких экземпляров класса в многопоточной среде. Закрытый конструктор не позволяет создавать экземпляры класса извне, а статический метод
Instance
гарантирует, что будет создан только один экземпляр.
Ставь
👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям
на сайте 👈