Я хочу провести цепочку элементов обработки и связать их вместе через 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? Если нет, то лучший способ обходить эту проблему элегантно, сохраняя при этом все преимущества инъекции?