我知道Dagger是一个依赖注入框架,但我还没有在我的项目中使用它。
我正在开始一个新项目,并想知道Dagger是否适合它。据我所知,使用Dagger会产生许多样板代码和注释。 所以我不确定这对我相对简单的项目是否有点过分。
关于这个项目。它专注于图像处理,功能的主要部分是围绕它构建的。但是,它也可能有一个简单的数据存储后端。
总的来说,我想了解一些基本原则,我可以选择使用Dagger进行项目。
答案 0 :(得分:28)
基本理解:
假设您要测试处理信用卡服务的应用程序。出于测试目的,您不能访问真正的RPCCreditCardService ,因为它需要真正的交易以及您在开发期间不想执行的其他内容。在这种情况下,您必须创建一个克隆假服务,它将模仿真正的CreditCardService所做的事情,但不会处理任何事情。如果使用依赖注入框架,则可以在依赖项中定义常见任务,并将其注入虚假和实际服务中。它将最大限度地降低编码复杂性,并有助于使每个模块独立。
来自文档:
通过使用依赖注入框架,每个类都很容易测试。你不需要一堆样板来将RpcCreditCardService换成FakeCreditCardService。
依赖注入不仅仅用于测试。它还可以轻松创建可重复使用的可互换模块。您可以在所有应用中共享相同的AuthenticationModule。您可以在开发期间运行DevLoggingModule,在生产中运行ProdLoggingModule以在每种情况下获得正确的行为。
<强>参考:强>
如需更详细的了解,请查看this discussion。