android - 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
}
}
编辑: 我不想在开始时初始化每个对象 - 应该只在需要时完成。
提前致谢!
解决方案
你的班级看起来不像单身。也许你想要这样的东西
class Bar(private val blub) {
var foo by lazy{ FooService(blub) }
}
或者你可以把它放在伴随对象中,以便在所有对象之间拥有相同的实例
推荐阅读
- mongodb - ChangeStream#destroy 不是方法吗?
- javascript - 如何使用ajax向mysql插入动态数据和静态输入数据,动态数据不会插入
- typescript - 如何为默认导出包含类的对象的模块提供符合人体工程学的类型?
- django - Django 上下文变量作为内联 css 属性的值
- java - 通过Java中的构造函数通过方法传递对象?
- cassandra - 在 cassandra 中启用基于角色的身份验证后如何提供向后读取兼容性?
- intellij-idea - 每次我想运行 Javafx 程序时是否必须设置 VM 选项
- ruby-on-rails - User#register 中的 ActionController::UrlGenerationError 没有路由匹配 {:action=>"about", :controller=>"user"}
- c# - 将外键值包含到单个记录的 DTO 中
- python - 如何用空字符串替换列表中的所有 False 值?