在我的根组件的模块中,我经常使用组件在容器内返回/提供单独的对象图。 用现有的模块依赖关系初始化组件/对象图的最佳方法是什么?
我觉得我应该在这里使用子组件,但是不知道如何使用。优选地,我想使用到目前为止所有可用的组件来启动该组件。当前,我通过Builder和@BindsInstance机制将每个实例传递给组件生成器,这看起来很尴尬,但是我不知道有一个更好的设计:
根组件
@Component(includes = TradeModule.class)
public interface RootComponent{
...
...
}
我的模块
@Module
public class TradeModule{
@Provides
@Singleton
//this is one example dependency that I want to inject in the component below
TimeframePermissionEvaluator timeframePermissionEvaluator() {
return new TimeframePermissionEvaluator();
}
@Provides
@Singleton
TradeModel tradeModel(TradeModelComponent.Builder builder, //assume builder is available
TimeframePermissionEvaluator tpe) {
return builder
//here I inject the dependency into the component. What's a more elegant
//way to do this? Imagine I have to inject hundreds of dependencies of TradeModule
.timeframePermissionEvaluator(tpe)
.build()
.createTradeModel();
}
}