Я хочу провести цепочку элементов обработки и связать их вместе через Guice. Пусть предполагается следующий путь:
-
interface A
, реализованныйclass AImpl
, нуждается в некотором вводе -
interface B
, реализованныйclass BImpl
, нуждается вA
-
interface C
, реализованныйclass CImpl
нуждается вB
-
interface D
, реализованныйclass DImpl
, нуждается вC
Зависимость A может быть разрешена только во время выполнения, а не во время настройки. Обычным подходом было бы использовать Assisted Injection в этом случае для создания factory, который принимает отсутствующие экземпляры как параметры, как это:
public interface AFactory {
public A createA(String input);
}
Но я действительно хочу что-то вроде этого:
public interface DFactory {
public D createD(String inputForA);
}
Я не хочу вручную передавать AImpl
-специфические зависимости через всю иерархию.
Можно ли добиться этого с помощью Guice? Если нет, то лучший способ обходить эту проблему элегантно, сохраняя при этом все преимущества инъекции?