美文网首页
2018-03-07 Dagger2 解耦 简单使用

2018-03-07 Dagger2 解耦 简单使用

作者: 啤酒小龙虾 | 来源:发表于2018-03-07 21:02 被阅读0次

    解耦方式

    1、利用配置文件,使用反射获取到需要加载的对象。

    2、设计模式:单例、工厂、观察者....等

    什么是Dagger2?

            Dagger2是为安卓和Java平台提供的在编译时进行依赖注入的框架。

     注意:  Dagger2 不是使用反射的方式进行的,因为反射是在运行时进行的!而Dagger2 是在编译期进行的!

    使用Dagger2做什么工作?

            主要用于做界面和业务之间的隔离。

    操作步骤:

    1、指定需要注入的目标

    注意添加注解

    通过注解去找实例。

    需要注意的是使用@Inject注解的变量不能是private变量,否则会报以下错误:

    Error:(16, 27) 错误: Dagger does not support injection into private fields

    2、创建与类相关的module

    主要用于对象创建的代码放在里面。注意创建类的时候添加注解@Module 表示创建对象的方法在这里面(指定类)    因为创建对象的语句不能直接放在类里面,所以需要添加一个方法。用@Provides注解表示创建对象的代码在这个方法里面(指定方法)

    3、将Avtivity与Module建立起练习

    以接口的方式将两者关联   注意注解@Component

    4、记得 ReBuild一下  : 在工具在编译期自动生成代码

    5、使用

    注意:此代码在那个类使用写到那个类中

    工作原理:

    每个注解都用来做什么工作: 如下图所示

    各个注解表示的含义

    Dagger2的引入:

    配置apt插件(在build.gradle(Project:xxx)中添加如下代码):

    dependencies {

            classpath 'com.android.tools.build:gradle:2.1.0' //添加apt插件

            classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

    }  

    添加依赖(在build.gradle(Module:app)中添加如下代码)

    apply plugin:'com.android.application'

    //添加如下代码,应用apt插件

    apply plugin:'com.neenbedankt.android-apt'

    ...

    dependencies {

     ...

     compile'com.google.dagger:dagger:2.4'

    apt'com.google.dagger:dagger-compiler:2.4'

    //java注解

    compile'org.glassfish:javax.annotation:10.0-b28'

    ...}

    相关文章

      网友评论

          本文标题:2018-03-07 Dagger2 解耦 简单使用

          本文链接:https://www.haomeiwen.com/subject/gyesfftx.html