我正在研究 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 很陌生,也许我当时误解了这个概念。很感谢任何形式的帮助!