什么时候在Android应用程序中使用Dagger?

我知道Dagger是一个dependency injection框架,但我还没有在我的项目中使用它。

我正在开始一个新项目,并想知道Dagger是否适合它。 据我所知,使用Dagger会产生许多样板代码和注释。 所以我不确定这对我相对简单的项目来说是不是太过分了。

关于这个项目。 它专注于image processing,function的主要部分是围绕它构建的。 但是,它也可能有一个简单的数据存储后端。

一般来说,我想知道一些基本原则,我可以选择使用Dagger进行项目。

Solutions Collecting From Web of "什么时候在Android应用程序中使用Dagger?"

基本理解:

假设您要测试处理信用卡服务的应用程序。 出于测试目的,您不能访问真正的RPCCreditCardService,因为它需要真正的事务和您在开发期间不想执行的其他事情。 在这种情况下,您必须创建一个克隆虚假服务,它将模仿真正的CreditCardService所做的事情,但不会处理任何事情。 如果使用dependency injection框架,则可以在依赖项中定义常见任务,并将其注入虚假和实际服务。 它将最小化编码复杂性,并有助于使每个模块独立。

从文档:

通过使用dependency injection框架,每个类都很容易测试。 您不需要一堆样板来将RpcCreditCardService换成FakeCreditCardService。

dependency injection不仅仅用于测试。 它还可以轻松创建可重复使用的可互换模块。 您可以在所有应用中共享相同的AuthenticationModule。 您可以在开发期间运行DevLoggingModule,在生产中运行ProdLoggingModule以在每种情况下获得正确的行为。

参考:

有关更详细的了解,您可以查看此讨论 。