android - Dagger - 依赖注入
问题描述
这个解决方案是否正确,或者我应该为每个 Activties 创建单独的 FragmentBuildersModules?
@Suppress("unused")
@Module
abstract class ActivityModule {
@ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
abstract fun contributeMainActivity(): MainActivity
@ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
abstract fun contributeLoginActivity(): LoginActivity
}
解决方案
除非活动重用相同的片段,否则它们应该依赖于不同的片段模块。这有几个不同的原因:
1) 您遵守 SOLID 的单一责任原则;
2)您的代码仍然易于阅读和重用(例如:如果您只需要重用另一个项目中的一个活动,您可以轻松地将其与其依赖关系图一起移植);
3)您的代码更易于维护(例如:如果有人将来必须使用您的代码,他们会立即知道哪些片段属于哪些活动);
4)您的代码不易出错(例如:如果您以某种方式弄乱了您的片段模块,它只会影响一个活动);
5) 可能是我现在不记得的其他原因:)
推荐阅读
- amazon-web-services - AWS Cognito - 注册后如何确认用户?
- matlab - 在 implay Matlab 中更改 CurrentFrame 的监听器?
- python - Python 通过 matplotlib 和 cartopy 绘制了一些点而忽略了其他点,为什么?
- kubernetes - 添加 --admission-control-config-file 标志后 kube-apiserver 没有出现
- reactjs - 在 React 中使用 forwardRef 或仅将 ref 作为 prop 传递之间的区别及其对 useImperitaveHandle 的影响
- python - (遍历)如何在python中解决这个问题?
- html - Bootstrap 4:两个 btn-group-vertical 并排
- api - github api:如何获得克隆?
- java - 如何计算csv文件的总人数?
- python - 在python中复制一个excel求解器函数以获得所需的输出