概述
Dagger 的名字取自有向无环图 DAG (directed acyclic graph),因为程序里的依赖关系拼接起来就是一个或者多个有向无环图。
首先理解一下什么是依赖注入。一个类 UserRepository 中有一个 UserRemoteDataSource 类型的属性, 那 UserRemoteDataSource 便是 UserRepository 的依赖,初始化这个依赖可以有两种方法,一种是在类内部自己初始化,另一种是由外部初始化(即是依赖注入,关键在于初始化是谁做的)。
这种由外部初始化的方式都可以叫做依赖注入,而 Dagger 则为依赖注入提供了一种更简单的方式。