Сегодня, Я пишу пост о синглтоне в 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
Более компактный, читаемый и надежный :) Спасибо, господин Андрей Бреслав.