Alcune persone considerano dichiarazioni di reso multiple come uno stile di programmazione errato. Mentre questo è vero per i metodi più grandi, non sono sicuro che sia accettabile per quelli brevi. Ma c'è un'altra domanda: dovrebbe essere scritto esplicitamente else
, se c'è una dichiarazione di ritorno nel precedente if
?Ritorno da un metodo con "altro" implicito o esplicito o con una singola istruzione "return"?
implicito else
:
private String resolveViewName(Viewable viewable) {
if(viewable.isTemplateNameAbsolute())
return viewable.getTemplateName();
return uriInfo.getMatchedResources().get(0).getClass().toString();
}
esplicita else
:
private String resolveViewName(Viewable viewable) {
if(viewable.isTemplateNameAbsolute())
return viewable.getTemplateName();
else
return uriInfo.getMatchedResources().get(0).getClass().toString();
}
Tecnicamente else
non è necessario qui, ma rendere il senso più evidente.
E forse l'approccio più pulito con un solo ritorno:
private String resolveViewName(Viewable viewable) {
String templateName;
if(viewable.isTemplateNameAbsolute())
templateName = viewable.getTemplateName();
else
templateName = uriInfo.getMatchedResources().get(0).getClass().toString();
return templateName;
}
Quale preferisce? Altri suggerimenti?
Una dichiarazione singolo di ritorno non è di solito neccessary per un bel metodo breve come questo dato che avere due è leggibile e, di solito, a m e almeno, più logico nella maggior parte delle situazioni. – Nobody
Mentre l'uso di altro è semplicemente un problema di materia, trovo questa catena mostruosa 'uriInfo.getMatchedResources(). Get (0) .getClass(). ToString()' più preoccupante. Questo semplicemente urla per Eccezioni a un certo punto che probabilmente dovrebbe essere meglio evitato con alcuni controlli extra. – x4u
"Alcune persone considerano dichiarazioni di reso multiple come cattivo stile di programmazione." vedi http: // StackOverflow.it/questions/36707/should-a-function-have-only-one-return-statement – Raedwald