Ho una classe simile a ServletFilter che ha più validazioni sulla richiesta di input
class TokenHandler implements SomeHandler{
Response handle(Request request){
if(paramXMissing(request)){
return new Response(); // empty response
}
if(paramYGreaterThan100(Request request)){
return new Response(); // empty response
}
//some more similar validation on request
}
}
Il parametro request
può essere un'istanza di qualsiasi sottotipo di Request
. Poiché la maggior parte dei metodi di convalida dipendono da Request
anziché dal gestore, sembra più simile all'emodore di caratteristica dell'invidia . Se Request
fosse stato un oggetto di dominio normale avrei solo metodo spostato in quella classe. Ma in questo caso, come faccio a refactoring questo codice ( metodo lungo )?
Non sono sicuro che l'introduzione di una nuova classe Validator sarebbe una scelta giusta.
Modifica
Non ho solo la convalida, ma anche l'elaborazione aggiuntiva sull'oggetto richiesta, ad esempio, rimuovo determinati parametri dalla stringa di query.
In realtà penso che l'introduzione di nuove classi per ogni specifica sarebbe eccessiva. È veramente richiesto? Qualche altra alternativa?