Назад к вопросам
Junior
93
questionbank

Что такое синглтон?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Синглтон — это порождающий паттерн проектирования, гарантирующий, что у класса есть только один экземпляр, и предоставляющий глобальную точку доступа к нему.

Преимущества:

  • Контроль над единственным экземпляром.
  • Глобальная точка доступа.
  • Ленивая инициализация (если реализована).

Недостатки:

  • Нарушение принципа единственной ответственности.
  • Затрудняет тестирование.
  • Может создавать проблемы в многопоточной среде без синхронизации.

Типичная реализация на Swift:

class Singleton {  
    // Статическая константа для хранения единственного экземпляра
    static let shared = Singleton()  

    // Приватный инициализатор для предотвращения создания других экземпляров
    private init() {  
        // Дополнительная настройка, если требуется  
        print("Singleton instance created")  
    }  

    // Пример метода синглтона  
    func doSomething() {  
        print("Singleton is doing something")  
    }  
}  

Использование:

// Доступ к единственному экземпляру через статическое свойство
let instance = Singleton.shared  
instance.doSomething()  
  
// Попытка создать другой экземпляр вызовет ошибку компиляции
// let anotherInstance = Singleton() // Ошибка!