Итак, я хочу добиться чего-то вроде этого:
@Component
public class ComponentA {
public void doThis(){};
}
@Component
public class ComponentB {
public void doThat(){};
}
public interface MyInterface {
void doSomething();
}
public class MyInterfaceImplA implements MyInterface {
private final ComponentA componentA;
@Inject
public MyInterfaceImplA(ComponentA componentA){
this.componentA = componentA;
}
public void doSomething(){
componentA.doThis();
}
}
public class MyInterfaceImplB implements MyInterface {
private final ComponentB componentB;
@Inject
public MyInterfaceImplB(ComponentB componentB) {
this.componentB = componentB;
}
public void doSomething() {
componentB.doThat();
}
}
То, что я в основном хочу, это внедрить разные компоненты в разные классы, реализующие один и тот же интерфейс.
У меня вопрос: есть ли хороший способ настроить эту архитектуру таким или иным способом? Или есть способ добиться этого лучше?