我有一个应用程序类“Application”,一个由“Impl1”和“Impl2”扩展的抽象类“AbstractClass”。应用程序类根据接收到的输入获取 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.??