声明片段依赖项以实现测试和可读性的最佳方法



基本上我知道有两种方法:

  • 通过新实例传递依赖项
  • 通过附加检索属性

这两种方法似乎都能完成工作。

然而,第一种方法非常类似于通过构造函数声明依赖项的通常方法,但它需要传递的依赖项来实现 Parcelable 接口,这并不总是可能的或想要的。(例如数据库DAO和存储库(

第二种方法在附加到上下文时检索依赖项。通过这种方式,可以询问上下文是否有,片段运行所需的某些依赖项。这似乎是一种非常干净和有效的方法,但问题是它隐藏了依赖项,并且使其更难测试。

所以我的问题是:有第三条路吗?或者有没有办法让这两种方法两全其美?

您可以使用 Dagger 2 将依赖项注入到片段中。设置完成后,您只需使用@Inject注释注释片段的成员,Dagger 2 将提供所需类的实例。并且可以在测试中替换依赖项。

最新更新