我知道Dagger是一个依赖注入框架,但我还没有在我的项目中使用它。
我正在开始一个新的项目,想知道Dagger是否适合它。据我所知,使用Dagger会导致大量的样板代码和注释。所以我不确定对于我这个相对简单的项目来说,这是不是有点过分了。
关于这个项目的一些情况。它专注于图像处理,功能的主要部分都是围绕它构建的。然而,它也可能有一个简单的数据存储后端。
一般来说,我想知道一些基本原则,我可以用来选择项目是否使用Dagger。
发布于 2015-05-13 21:33:51
基础知识:
假设您想测试处理信用卡服务的应用程序。出于测试目的,您不能想要访问real RPCCreditCardService,因为它将需要实际事务和其他您不想在开发期间执行的东西。在这种情况下,您必须创建一个克隆的伪服务,它将模仿真正的CreditCardService所做的相同事情,但不会处理任何事务。如果您使用依赖注入框架,您可以在依赖中定义常见任务,并将其注入到伪服务和真实服务中。它将最大限度地减少编码复杂性,并有助于使每个模块独立。
文档中的:
通过使用依赖注入框架,每个类都很容易测试。您不需要一堆样板文件就可以将RpcCreditCardService换成FakeCreditCardService。
依赖注入不仅仅是为了测试。它还使得创建可重用、可互换的模块变得很容易。您可以在所有应用程序之间共享相同的AuthenticationModule。您可以在开发期间运行DevLoggingModule,在生产中运行ProdLoggingModule,以在每种情况下获得正确的行为。
参考:
要了解更多详细信息,请查看this discussion。
https://stackoverflow.com/questions/30215794
复制相似问题