看许多开源项目都不假思索地使用了这个库,实在不解,这个库究竟是为解决什么问题而存在,真的非它不可吗?
有什么典型的例子能证明它的存在价值吗?
有什么典型的例子能证明它的存在价值吗?
|
1
我唯一能想到的是,保证构造入参的一致性,此外还有别的价值吗?
|
|
troywinterSep 15, 2019
2
DI 啊,跟服务端的 spring 作用一样啊,因为国外那帮程序员得写测试代码啊,所以需要 DI
|
|
momocraftSep 15, 2019
3
di 庫不算少的, dagger 可能只是出名
還要找例子來理解價值說明你可能不需要, 不用沒關係 |
|
crayygySep 15, 2019 via iPhone
4
先理解了依赖注入,以及为什么需要依赖注入,再去看 dagger2 这类的可能会比较好理解一些,。
推荐这个视频,我一开始也不大明白 DI 的目的是什么,看完就差不多懂了 |
|
5
@troywinter @momocraft @crayygy
谢谢,我大概理解了,DI 框架就是为了解决传统依赖注入办法导致的入参一致性问题,当参数变化时,不得不去所有依赖它的类中全改了。 而且顺带解决了多层依赖的关系。 比如 A a = new A() B b = new B() C c = new C(a,b) 的情况,有了 DI 框架,直接 C c = C.xxx 即可,有点类似于工厂模式,通过封装解决一致性问题,具体我再看看 |
|
7
|
|
zealot0630Sep 15, 2019 via Android
9
DI 最大作用就是解耦
|
|
mephistophilisSep 15, 2019 via iPhone
10
一看你就不写 ut
|
|
hantsySep 16, 2019
11
Dagger2 应该就是 Guice 的 Android 翻版吧。
|
|
zzyySep 19, 2019
12
没这玩意, 单元测试不好写
|