Ответ
Singleton — это порождающий паттерн, гарантирующий, что у класса есть только один экземпляр, и предоставляющий глобальную точку доступа к нему.
Ключевые моменты:
- Приватный конструктор (чтобы нельзя было создать экземпляр извне).
- Статический метод для получения экземпляра (обычно
getInstance()). - Ленивая инициализация (создание при первом вызове).
Пример на Kotlin:
object Singleton // Самый простой способ (использует `object` в Kotlin)
// Или с ленивой инициализацией:
class Singleton private constructor() {
companion object {
val instance: Singleton by lazy { Singleton() }
}
}
Проблемы:
- Нарушает принцип единственной ответственности.
- Усложняет тестирование из-за глобального состояния.
- Потокобезопасность требует дополнительных проверок в Java (в Kotlin
objectиlazyпо умолчанию thread-safe).
Видео-ответы
▶
Собеседование в МТС: Middle Java с лайв-кодингом
▶
Джун был тимлидом, разрабатывал телеграм ботов и стал миддлом? / Техсобес Middle Python Developer
▶
iOS Мок Интервью Middle разработчика - Федор
▶
Собеседование Middle Python Developer на $2000 #6
▶
iOS Мок Интервью Junior разработчика - Анастасия
▶
Собеседование Trainee Python Developer
▶
Собеседование подписчика Trainee Python Developer
▶
Собеседование Junior Python Developer
▶
PYTHON JUNIOR интервью со SpaciX
▶
Собеседование Trainee Python Developer
▶
Собеседование: Swift (iOS-разработка) / Вопросы и ответы
▶
FRONT-END РАЗРАБОТЧИК: Как пройти СОБЕСЕДОВАНИЕ?
▶
Публичное собеседование iOS-разработчика | Петя Коренев и Андрей Галушка