Ответ
object Singleton {
fun doSomething() {
println("Doing something...")
}
}
В Kotlin Singleton реализуется через ключевое слово object. Это обеспечивает:
- Потокобезопасную инициализацию
- Ленивую загрузку (инициализируется при первом доступе)
- Автоматическую реализацию шаблона Singleton
Доступ к Singleton:
Singleton.doSomething()
Альтернатива с конструктором (если нужна кастомизация):
class Singleton private constructor() {
companion object {
@Volatile private var instance: Singleton? = null
fun getInstance(): Singleton {
return instance ?: synchronized(this) {
instance ?: Singleton().also { instance = it }
}
}
}
}