0

我使用了 Guice 辅助注入和 FactoryModuleBuilder 来帮助构建适配器类,其中一个类包装另一个类。

class MyClassWrapper implements SomeInterface {

  interface MyClassWrapper.Factory {
    MyClassWrapper create(MyClass myClass, Database db);
  }

  // ...

  @Inject
  private MyClassWrapper(@Assisted MyClass myClass, @Assisted Database db) {
    // ...
  }
}

假设我想向 MyClassWrapper.Factory 接口添加另一个方法签名:

List<MyClassWrapper> create(List<MyClass> myClass, Database db);

FactoryMethodBuilder 可以确定我想从 MyClass 对象列表中构造一个 MyClassWrapper 对象列表吗?还是我需要手动编写工厂方法实现?

4

1 回答 1

0

我不认为 Guice 支持这个作为内置的,但你可以通过注入Provider你需要的所有东西来编写你自己的。(您没有列出任何非@Assisted依赖项;请记住,您可能根本不需要在这里使用 Guice。)

您可能还考虑编写一个静态方法,该方法接收您的Factory并在其上调用 Guice 创建的实现,但您可能会失去可读性和理解您在简洁代码中获得的东西。

于 2013-01-28T19:36:29.893 回答