首页 > 解决方案 > kotlin 中的“单例”模式方法最好的方法

问题描述

有人可以帮我找到在 Kotlin 中创建单个实例的更好方法吗?

class Bar(private val blub) {

   private lateinit var foo: FooService
   private lateinit var doo: DooService

   override fun getFooService(): FooService {
       if (!::foo.isInitialized) {
           foo = FooService(blub)
       }
       return foo
   }

    override fun getDooService(): DooService {
       if (!::doo.isInitialized) {
           doo = DooService(blub)
       }
       return doo
   }
}

编辑: 我不想在开始时初始化每个对象 - 应该只在需要时完成。

提前致谢!

标签: androidkotlin

解决方案


你的班级看起来不像单身。也许你想要这样的东西

class Bar(private val blub) {

    var foo by lazy{ FooService(blub) }
}

或者你可以把它放在伴随对象中,以便在所有对象之间拥有相同的实例


推荐阅读