【问题标题】:Shall we pass injected object in another class我们要不要在另一个类中传递注入的对象
【发布时间】:2019-06-14 09:33:19
【问题描述】:

我只是在玩 Dagger2 以在 Android 中实现 DI。

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

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

【问题讨论】:

    标签: java android kotlin dependency-injection dagger-2


    【解决方案1】:

    不,不是。您应该使用scope 并在您的ViewModel 中进行注入。

    你试图做的是反对依赖注入背后的想法。依赖注入库根据您的Models 创建一个依赖树,然后允许您在应用程序中使用此树。

    • 如果您每次都在初始化,您不知道对象的当前状态是什么。
    • 大多数情况下,您需要某个范围内的一个实例,例如内部活动或片段……这个问题可以通过Dagger2 轻松解决

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

    【讨论】:

    • 感谢您的回答,但是如果注入的对象需要活动上下文怎么办。以及如何在单元测试中进行测试。
    猜你喜欢
    • 2017-02-02
    • 2013-08-01
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    相关资源
    最近更新 更多