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

2018-03-07  本文已影响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'

...}

上一篇 下一篇

猜你喜欢

热点阅读