Android_Dagger2 入门及依赖导入问题详解

版权声明:转载请说明出处 https://blog.csdn.net/qq_42046338/article/details/88745573

其实现在网上已经有很多的Dagger资料但我查阅了一下我发现多好都是有点瑕疵让大家从Dagger入门到放弃再从入门到放弃,如此反复,顿时想到了圈中的很多从入门到放弃(Java从入门到放弃)等.....

注:耐心观看废话一般很少不要错过细节以防出现纰漏,直接将如何上手和介绍,本篇博客针对小百快速入手Dagger2(匕首)。

   1,Dagger2 的讲解

                  Dagger2 又名 匕首对于Dagger2使用注解的方式去绑定或者使用对象,好多人想到的是注解是不是使用的反射,反射又去影响我们使用APP 的性能和效率,但是不会的因为Dagger2在去生成这些对象从而造成APP 的影响,因为在使用Dagger2的时候在编译期间就已经将这个代码进行生成了mDagger是一种注入类的设计原则,是为了减低项目中的耦合性。

    举个栗子有个类A,他的构造函数需要传入B,C;然后代码里有5个地方实例化了A,那如果功能更改,A的构造函数改成了只有C,这个时候,你是不是要去这10个地方一个一个的改?如果是跟多个地方,你是不是要MMP?!如果采用dagger2,这样的需求只需要改1-2个地方不知道能不能理解,解释了这么多我们开始进入实用讲解。

    2   先导入依赖

compile"com.google.dagger:dagger:2.14.1"
annotationProcessor"com.google.dagger:dagger-compiler:2.14.1"

                       然后有人说我cao 依赖导入后报错这个博主会不会啊,我说没有问题那么在加一个

      //在整个项目的build.gradle中添加
                              //位置是在dependencies内部
  classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

3     依赖导入完了那么正解,对象的创建如何的注入

                  

 

扫描二维码关注公众号,回复: 6189421 查看本文章

             看到这我想大家应该要说MD,这个SB 博主 你上来这么几段代码和注解我咋知道什么意思,我说不急咋们解释一下 

 使用@Inject注释使用它来创建一个类的实例构造函数。当请求新实例时,Dagger将获取所需的参数值并调用此构造函数。

也就是说 @Inject 用来创建一个类的实例但是,是放在构造上的,有参构造,和无惨构造都行,上图是使用无惨构造进行演示这样大家看到明白,@Component  通过将 注释应用于此类接口或者抽象类并将模块类型传递给modules参数,Dagger 2然后完全生成该合同的实现, 也就是说 这个接口就是中介 必须通过Component 才能完成注入 ,完成接口和类的 注解我们就让项目重新Build一下Dagger会自动生成一下代码,下来去接口中参数定义的那个类中去掉用就是Dagger*** 你接口中定义的方法就完成了注入,在注入的类中去用 @Inject 注解去完成要创建的类进行调用就可以了。以后是无参数的,看到这如果你明白了那我们在来一个有构造的上图。

 

 直接使用@Inject注释使用它来创建一个类的实例构造函数接着进行调用方法。

 此篇博客带大家入门,后续出更多的注解详解,此博客为入门和简单用法。

猜你喜欢

转载自blog.csdn.net/qq_42046338/article/details/88745573