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複数必要なすべての s を注入することで、独自のものを作成できます。(依存関係のないものはリストしていません@Assisted。ここでは、Guice をまったく使用する必要がない場合があることを覚えておいてください。)

Guice で作成された実装を取り込んで呼び出す静的メソッドを作成することも検討できFactoryますが、簡潔なコードで得られる読みやすさと理解度が失われる可能性があります。

于 2013-01-28T19:36:29.893 に答える