为什么MVVM总是与Dagger一起提供?

时间:2019-03-19 18:55:38

标签: android dagger-2 android-mvvm

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

  1. 为什么/必须在MVVM体系结构中使用匕首?为什么Dagger的MVP架构比MVVM架构少?
  2. 是否有可能开发具有MVVM架构且没有匕首的android应用?

3 个答案:

答案 0 :(得分:1)

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

Dependency Injection :是一种概念和编码方式,而匕首使利用批注的依赖项注入更加容易。

Google的Sun-Flower项目在使用MVVM模式时也没有使用匕首。

答案 1 :(得分:0)

您不需要在MVVM架构或MVP架构中使用Dagger-Dagger只是一个依赖注入程序库。您可以立即在Kotlin中使用延迟加载,也可以使用Koin代替Dagger。架构模式不依赖Dagger。

答案 2 :(得分:0)

依赖注入只是一个想法。

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

甚至Jake Wharton都说Dagger2对于较小的应用程序可能会显得过大。

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