好的,我决定更深入地研究如何在我的项目中实现JUnit测试。然后我偶然发现了一篇文章,讲述使用依赖注入框架如Dagger2和Koin来简化测试的重要性。
我尝试阅读“DI到底是什么”,我理解它是一种解决A类依赖对象(例如B类和C类)的方法。
我现在通常做的是:
在Activity中创建ViewModel,ViewModel需要访问数据,所以我有SomeRepository类来处理数据。然后我通过ViewModel构造函数或使用属性注入来传递SomeRepository。如果我没弄错的话,那也是某种形式的依赖注入(如果我错了,请纠正我)。
那么,如果我现在开始使用Dagger 2会有哪些好处呢?也许进行简单的代码比较会更清晰明了?提前感谢您的回答。
Activity:
val someRepository = SomeRepository()
viewModel.init(someRepository)
在 ViewModel 中:
class SomeViewModel : ViewModel {
private lateinit var repository: SomeRepository
fun init(val someRepo: SomeRepository) {
this.repository = someRepo
}
}