java - 我们可以在另一个类中传递注入(inject)的对象吗

标签 java android kotlin dependency-injection dagger-2

我只是在 Android 中使用 Dagger2 进行 DI 实现。

我的查询与我面临的问题无关,而只是获取知识。

我打算在我的 Activity 中注入(inject)一个类,并将其传递给我的 ViewModel 类。这是遵循依赖注入(inject)最佳实践的好方法吗?是否会出现与泄漏或性能相关的任何问题。

最佳答案

不,事实并非如此。您应该使用 scope 并在您的 ViewModel 中实现注入(inject)。

您尝试做的事情违背了依赖注入(inject)背后的想法。依赖注入(inject)库根据您的模型创建依赖树,然后允许您在应用程序中使用该树。

  • 如果每次都进行初始化,您将不知道对象的当前状态。
  • 大多数时候,您需要某个范围内的一个实例,例如内部 Activity 或 fragment ......这个问题可以通过Dagger2轻松解决

范围确保给定范围内只有一个实例。

关于java - 我们可以在另一个类中传递注入(inject)的对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595347/

相关文章:

java - 来自一对多关系的实体仅在应用程序重启后可见(JPA 和 PostgreSQL)

java - 捕获不在本地抛出的异常?

java - 菜单打开时覆盖后退按钮

android - Android 上的 ftrace?

android - 使用 ADB 检查目录是否存在,如果存在则推送文件

spring-boot - 如何在单元测试中从依赖注入(inject)容器中获取实例?

android - 你如何在 Kotlin 中注释 Pair 参数?

java - 如何从 servlet 获取 JSON 对象?

java - 如何将 ArrayList<E> 拆分为 ArrayList<ArrayList<E>>?

java - Kotlin 中的不相交联合可在 Java 中访问