【发布时间】:2021-03-13 15:47:59
【问题描述】:
我正在研究 Dagger2 及其内置的 AssisedInject 注释。 dagger.dev 提供的教程显示了一个示例,其中工厂方法返回一个具体类,但我希望工厂返回一个接口,该接口在某些模块中定义了实现绑定。
class MyDataService {
@AssistedInject
MyDataService(DataFetcher dataFetcher, @Assisted Config config) {}
}
// ---
@AssistedFactory
public interface MyDataServiceFactory {
MyDataService create(Config config);
}
在 Google Guice 中,例如我可以使用工厂模块构建器创建一个模块,以将接口和实现结合在一起:
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
Dagger2 AssistedInject 不可以吗?我对 Dagger 很陌生,也许我当时误解了这个概念。非常感谢任何帮助!
【问题讨论】:
标签: interface dagger-2 assisted-inject