我刚刚开始学习Dagger,并且想将其纳入我的应用程序中,在阅读了很多文章之后,我开始通过以下方式使用Dagger:
m=5
对于每个活动:
matrix[6]
是为每个活动的良好做法创建一个子组件,还是我做错了什么?
答案 0 :(得分:0)
为每个活动声明单独的组件根本不是一个好主意。这背后的原因很简单-您实际上并不需要所有这些模块/组件(就像您自己已经看到的那样)。
但是,仅将一个与Application
的生命周期相关联的组件并用于将其注入到所有Activities
中并不是最佳解决方案(这是您朋友的方法)。这不是最佳选择,因为:
@Singleton
或自定义范围)Services
,但是Services
可能需要与Activities
不同的对象(例如Services
不需要演示者,没有FragmentManager
等)。通过使用单个组件,您失去了为不同组件定义不同对象图的灵活性。因此,每个Activity
的组件是过大的,但是整个应用程序的单个组件不够灵活。最佳解决方案介于这两个极端之间(通常如此)。
我使用以下方法:
Application
中实例化。Activities
和Fragments
)。在每个Activity
和Fragment
中实例化。Services
所需的对象。在每个Service
中实例化。