Я создал синглтон в Kotlin следующим образом:
object MySingleton {
var dataSource: MyDataSource? = null
fun init(sourceUri: String, setting: String) {
this.dataSource = MyDataSource(sourceUri).build(setting)
}
fun storeData(products: List<Product>) {
dataSource?.store(products)
}
fun getProducts(): List<Product>? {
return dataSource?.getProducts()
}
}
Я использовал init
, так как не мог передать параметры конструктору синглтона, но я не уверен, что это правильно путь в Kotlin. Кроме того, есть ли какие-то соображения по безопасности потоков, которые я мог бы пропустить?