fun main() {
val single1 = Singleton
val single2 = Singleton
println("Are the same object: ${single1 == single2}")
}
Использование ленивой инициализации
object LazySingleton {
val lazyField: Teacher by lazy(LazyThreadSafetyMode.PUBLICATION) {
Teacher(name = "Ivan", surname = "Ivanov")
}
}
data class Teacher(
val name: String,
val surname: String
)
fun main() {
val single3 = LazySingleton.lazyField
val single4 = LazySingleton.lazyField
println("Are the same object: ${single3.name == single4.name && single3.surname == single4.surname}")
}