Когда стоит использовать Singleton

«Когда стоит использовать Singleton» — вопрос из категории Паттерны, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Singleton стоит использовать, когда нужно гарантировать единственный экземпляр класса в рамках всего приложения, например, для управления конфигурацией, логгером или доступом к базе данных.

Плюсы:

  • Глобальный доступ к экземпляру
  • Гарантированная единственность

Минусы:

  • Усложняет тестирование (зависимости скрыты)
  • Может привести к избыточному связыванию кода

Пример:

object DatabaseManager {
    fun queryData() { /* ... */ }
}
// Использование:
DatabaseManager.queryData()

Альтернативы:

  • Внедрение зависимостей (Dagger/Hilt)
  • Ленивая инициализация через by lazy

Используйте Singleton осознанно, избегая злоупотребления.