一連の処理要素を実行し、Guice を介してそれらを結び付けたいと考えています。次のパスを想定しましょう。
interface A
によって実装され、class AImpl
いくつかの入力が必要ですinterface B
class BImpl
必要に応じて実装A
interface C
class CImpl
必要に応じて実装B
interface D
class DImpl
必要に応じて実装C
A の依存関係は実行時にのみ解決でき、構成時には解決できません。この場合、通常のアプローチは、次のように、不足しているインスタンスをパラメーターとして受け取るファクトリを作成するためにアシスト インジェクションを使用することです。
public interface AFactory {
public A createA(String input);
}
しかし、私が実際に欲しいのは次のようなものです:
public interface DFactory {
public D createD(String inputForA);
}
AImpl
階層全体に固有の依存関係を手動で渡したくありません。Guiceでこれを達成することは可能ですか? そうでない場合、インジェクションの利点を維持しながら、この問題をエレガントに回避する最良の方法は何ですか?