У меня есть класс приложения "Приложение", один абстрактный класс "AbstractClass", расширенный "Impl1" и "Impl2". Класс приложения получает impl1 или impl2 для выполнения некоторой задачи на основе получаемых им входных данных.
В настоящее время я внедряю оба класса в класс приложения, как показано ниже. Затем, основываясь на вводе, я либо спрашиваю impl1 ИЛИ impl2, чтобы выполнить задачу.
public class Application {
private static final Data data1 = DATA_CONFIG.data_1;
private final AbstractClass impl1;
private final AbstractClass impl2;
@Inject
Application(final AbstractClass impl1, final AbstractClass impl2){
this.impl1 = impl1;
this.impl2 = impl2;
}
public void mainTask(final Data data){
if(data == data1){
impl1.performTask();
}else{
impl2.performTask();
}
}
}
Но есть ли способ, которым я мог бы использовать вспомогательный ввод или подобную концепцию для внедрения только требуемой зависимости, например, ввод data1 , я только внедряю impl1, а не impl2.??