Сегодня, Я пишу пост о синглтоне в Kotlin, и он находится под сильным влиянием стиля Java. Вскоре после этого Андрей Бреслав (дизайнер языка Kotlin) даст ответ и лучший подход к написанию синглтона на Kotlin.

Моя ошибка в том, что я не осознавал, что объект может иметь логику инициализации . Вот почему я считаю, что использование класса лучше, чем использование объекта.

Итак, это перезапись моей первой синглтон-версии:

object Singleton {
    init {
        println("This ($this) is a singleton")
    }
    
    var b:String? = null
}
var first = Singleton    //This (Singobj@728938a9) is a singleton
first.b = "hello singleton"
var second = Singleton
println(second.b)        //hello singleton

Более компактный, читаемый и надежный :) Спасибо, господин Андрей Бреслав.