1

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

4

0 回答 0