简介
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
标记接口、标记方法,指明实例为单例