Назад к вопросам
Junior
81
questionbank
Что такое паттерн Singleton?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Singleton — это порождающий паттерн проектирования, гарантирующий, что в каждый момент времени будет существовать только один экземпляр класса, который будет доступен глобально. Применяется для централизованного управления ресурсами или конфигурациями.
Пример реализации на Swift:
class Singleton {
static let shared = Singleton() // Статическое свойство для единственного экземпляра
private init() { // Закрытый инициализатор, предотвращающий создание новых экземпляров извне
// Настройка синглтона
}
func someMethod() {
// Логика синглтона
}
}
// Использование синглтона
let instance = Singleton.shared
instance.someMethod()
Преимущества:
- Гарантирует наличие только одного экземпляра.
- Единая точка доступа к экземпляру.
Недостатки:
- Может усложнять тестирование (сложно заменить моком).
- Нарушает принцип единственной ответственности (класс отвечает и за свою логику, и за управление экземпляром).
- Потенциально может создавать проблемы с многопоточностью, если не синхронизирован.