abbiamo alcune API che verranno chiamate dal client A, B, C o D
Codice corrente
doSomething(String client){
if (client.equals("A")){
...
}
else if (client.equals("B")){
...
}
Rifattorizzazione proposta 1
separare in più metodi e fare in modo che ogni cliente chiami il metodo dedicato come
doSomethingForClientA()
doSomethingForClientB()
abbiamo bisogno di questo perché internamente ogni metodo chiamerà altri metodi privati definiti nella stessa classe
Rifattorizzazione proposta 2
Utilizza lo schema di strategia (o modello) e separalo in più classi per i client da chiamare
la chiamata al metodo dal client rimane
doSomething()
Quale approccio è migliore a lungo termine? C'è qualche modello di progettazione per aiutare con l'opzione 1? o una terza opzione?