Dragger2概述

 

简介

Dagger2是为Android和Java平台提供的一个完全静态的、在编译时进行依赖注入的框架。

MVP模式

概念

Model:数据 View:视图 Presenter:业务逻辑

优点

1、分离了视图逻辑和业务逻辑,降低了耦合 2、Presenter被抽象成接口,可以有业务实现和测试实现,方便单元测试 3、把业务逻辑放到Presenter,避免后台线程引用着Activity,导致Activity无法被系统回收,造成内存泄漏

构成

IPresenter接口:定义业务方法 PresenterImp类:实现IPresenter接口,实现业务逻辑,依赖IView IView接口:定义视图逻辑 View类:实现IView接口,操作视图 Activity/Fragment类:依赖IPresenter Module类:提供View实例 Component接口:指明Activity和Module

常用注解

@Inject

1、标记提供方的构造方法 2、标记需求方的域 *在Activity中标记IPresenter域 *在PresenterImp中标记构造方法

@Provides

标记方法,则该方法会在提供依赖时被调用 *标记Module中返回IView实例的方法

@Module

标记类,则该类是专门提供依赖的 *标记Module类

@Component

标记接口,则该接口在编译时会创建相应的实例来作为提供方和需求方的桥梁 *标记Component接口

@Singleton

标记接口、标记方法,指明实例为单例

原理