si, infatti quello che sto facendo è, dopo un refactoring delle classi, avere qualcosa del tipo:
AbstractClassePadre {
public metodo(){
valore = repositoryConfig.readActualPropertyFromDB(...);
if (valore instanceof A) {
A a = getApplContext.getBean("policy_1");
a.metodo();
} else if (valore instanceof B) {
B b = getApplContext.getBean("policy_2");
b.metodo();
}
}
class A extends AbstractClassePadre {
@override
metodo(){...};
}
class B extends AbstractClassePadre {
@override
metodo(){...};
}
come la vedi?