【发布时间】:2020-02-05 00:51:30
【问题描述】:
我正在使用 Kotlin 和 Dagger2 做一个应用程序,试图遵循 MVVM 模式,但我处于两难境地,我应该使用 @Singleton、object 还是两者兼而有之?为什么?假设我有一个 RepositoryMovies 类,我想每次都获取相同的实例,根据我的研究,您可以这样做:
@Singleton(Dagger2 方式)
@Singleton
class RepositoryMovies {
TODO()
}
对象(Kotlin 方式)
object RepositoryMovies {
TODO()
}
两者
@Singleton
object RepositoryMovies {
TODO()
}
不要让我按照“Java-Way”开始在 Kotlin 中使用单例。我会很感激你的帮助。非常感谢。
【问题讨论】:
-
我使用 Dagger 的次数不多,但我认为两者都可以。但是,您可以在类中使用构造函数参数,这在测试以注入测试资源时可能会派上用场。
-
如以下匕首代码实验室所示,Google 使用 @Singleton 和 class 关键字:codelabs.developers.google.com/codelabs/android-dagger/#12
标签: android kotlin singleton dagger