Va bene avere una strategia implementata come una classe interna non statica o è considerata una cattiva pratica?
public class SomeClass{
private final Strategy strategy;
public void someMethod(){
this.strategy = new Strategy();
//call some strategy method to run an algorithm
strategy.doSomeWork();
}
private class Strategy(){
private doWork(){};
}
}
P.S : Strategy
ha bisogno di accedere allo stato di SomeClass
. Quindi non può renderlo statico. Un'altra opzione è quella di avere Strategy
come interfaccia e quindi iniettare un% diStrategy
concreto all'interno del costruttore di SomeClass
ma al momento non vedo questo particolare Interfaccia Strategy
utilizzata da un'altra classe. Quindi pensato al primo approccio. Tuttavia, se faccio il primo approccio, come faccio a far funzionare la mia classe in modo trasparente con più strategie?