在良好的架构方面使用DI(Dagger)的好例子是什么?

时间:2014-10-20 09:54:15

标签: android dependency-injection dagger

我正在尝试为我的Android应用程序创建模块化架构,现在我正在研究Dagger DI库。这是非常棒的工具,但我不想滥用它,目前我有很多问题,如:

  • 我应该将所有内容(如活动或片段,或事件单独的视图)包装到模块中,还是仅包含应用程序的常用部分(喜欢使用登录,数据层查询数据的服务)?
  • 更好地使用Android注释。 Android Annotations是我面临的另一个很酷的库,但它似乎与UI层很好地结合使用Views,Fragments和删除一些样板代码。但它如何与Dagger一起玩?

如果你有一个使用DI的开源项目的好例子,请参考我。我真的想要遵循最佳实践。

2 个答案:

答案 0 :(得分:3)

看看:

答案 1 :(得分:1)

依赖注入通常用于添加一层分离,使事情更少耦合。对于Android,我推荐的库是Dagger2。

我建议您查看boilerplate,因为它完全基于使用Dagger2的DI。

锅炉板当前处理的依赖关系如下:

  • 数据库依赖:封装所有数据库操作。
  • 共享偏好设施依赖项:处理共享偏好设置。
  • 本地文件依赖:处理文件保存。
  • Google Analytics依赖:涵盖向分析后端报告事件的所有操作(GA,Segment,FB,Flurry ..)
  • 记录依赖项:封装与记录到控制台相关的所有操作
  • Api依赖:封装所有与API相关的操作

依赖注入的强大功能非常方便,特别是对于测试,因为您可以轻松地将测试环境中的依赖项切换为虚拟依赖项。