Назад к вопросам
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() // Ошибка!