【问题标题】:Why is MVVM always presented with Dagger?为什么 MVVM 总是与 Dagger 一起出现?
【发布时间】:2019-03-19 18:55:38
【问题描述】:

我是 MVVM 架构的新手,我在互联网上找到的每个文档都使用 Dagger 和 MVVM 架构。 Dagger 对我来说风格模糊,在我看来,仅仅创建一个 android 应用程序过于复杂。所以我的问题很简单:

  1. 为什么我应该/必须在 MVVM 架构中使用 dagger?以及为什么 Dagger 采用 MVP 架构的频率不如采用 MVVM 架构的频率高?
  2. 是否可以开发一个 MVVM 架构且没有 dagger 的 android 应用程序?

【问题讨论】:

  • MVVM 是一种模式,而 Dagger 是一个库。如果您不想使用 Dagger,这取决于您。参考这个链接wintellect.com/model-view-viewmodel-mvvm-explained
  • """仅仅创建一个 android 应用程序过于复杂。""" 由于不应用依赖注入而隐含的复杂性不一定是更好的策略。

标签: android dagger-2 android-mvvm


【解决方案1】:

我不同意那些说匕首只是图书馆的人。

Dependency Injection :是一种概念和一种编码方式,dagger 通过注解更容易利用依赖注入。

另外,来自 google 的 Sun-Flower 项目在使用 MVVM 模式时没有使用 dagger。

【讨论】:

    【解决方案2】:

    在 MVVM 架构或 MVP 架构中不需要 Dagger - Dagger 只是一个依赖注入器库。您现在可以在 Kotlin 中使用延迟加载或 Koin 作为 Dagger 的替代品。架构模式不依赖 Dagger。

    【讨论】:

      【解决方案3】:

      依赖注入只是一个想法。

      Dagger2 是一个使用注解处理来帮助依赖注入样板的库。

      即使Jake Wharton 表示 Dagger2 对于较小的应用程序来说可能有点过分了。

      完全可以在没有 DI 框架的情况下开发 MVVM 应用程序。从技术上讲,您根本需要 DI,但它确实会使事情变得更容易——尤其是在测试方面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-17
        • 1970-01-01
        • 2010-12-13
        • 2015-01-28
        • 1970-01-01
        • 2020-10-16
        相关资源
        最近更新 更多