【发布时间】:2018-12-05 10:54:01
【问题描述】:
最近我开始将我们的应用程序划分为更小的 Android 模块,但我不知道如何构建 dagger 以使其适合我。
我的方法是将“更大”的功能划分为更小的模块。我的大部分功能现在都在 base 模块中。
我现在的工作:
App
^
|
Base
^
|
Mvvm core
MyDagger 设置包括:
- 一个@Singleton 作用域AppComponent
- 一个@UserScope 子组件UserComponent
两者都放在Base模块中。
我想要达到的目标:
App
^
|
Feature 1 - Feature 2
^
|
Base
^
|
Mvvm core
我的计划是每个功能都将在它们自己的模块中包含一个 @FeatureX 子组件 - 但这是一切都崩溃的地方。
我不知道如何将SubComponent.Build 公开给我的每个功能模块。
这是正确的方法还是我错过了什么?
奖励信息:我还尝试将 AppComponent 和 UserComponent 移动到 App 模块中,但是我无法从我的功能模块中访问我需要注入的组件。
【问题讨论】:
-
特性包含什么:活动、实用程序类、模型?
-
是的,该功能需要发挥作用的一切。
-
所以如果我猜对了,您的功能模块需要访问您的应用程序依赖项,而您的应用程序还需要访问您的功能子组件?
-
没有。我的功能模块将包含一个子组件,其父组件位于基本模块(AppComponent)中。但我的问题是,要能够创建子组件,您需要父组件
-
你不需要访问父组件来构建子组件