目录
Dagger2入门(一)—— Dagger2优点
Dagger2入门(二)—— Dagger2的简单使用
Dagger2入门(三)—— Dagger2的高级用法
优点
Dagger2使我们在开发中经常遇到的依赖注入框架。但是为什么要用dagger2呢?换句话说就是为什么用依赖注入的方式去创建对象呢?很多人的答复是为了解耦,但一般模式耦合在哪里?为什么就不能用new的方法呢?
这对于许多开发经验不是那么充足的猿来说是比较难理解的,在这里我建议新猿看到这里,不妨先放下Dagger2,先学习一下工厂方法模式、享元模式以及MVC,MVP,MVVM模式。
Dagger2本质上是帮你生成一个管理依赖对象的工厂。
当我们不想让一个类的创建与其使用的地方发生耦合,或者我们想要复用同一对象时,dagger2可以为我们自动为我们生成工厂方法并把生成的对象注入到我们需要的地方。这个优点在当一个工厂复杂到一定程度的时候比较明显,比如我们再多个界面上需要到User信息是,可以靠Dagger2保证是同一User。当然你可以说你可以自己写一个工厂方法,毕竟dagger2的原理就是自动帮你生成工厂。当这样的依赖多了的时候,恐怕你就不会这么说了。
当项目复杂达到一定程度,我们想要将Model层分离出来时,Dagger2优点更明显,Model层自己负责自己的创建。而Model的使用则通过依赖注入的方式交给P层,C层,VM层。
再假设,一个类A,依赖于类B,再依赖于类C,他的构建方法是这样的new A(new B(new C()))
或者其他复杂的依赖关系。当我们要使用A的时候,如果使用传统方式就不可避免地与B、C发生了耦合,但如果采用依赖注入的方式,使用A的地方通过注入的方式获得A实例,A内部通过注入的方式获得B对象(依赖),B也同理,通过Dagger2达到类管理依赖也实现了迪米特法则。
网友评论