Sonar Lint-Regel "Methoden sollten nicht zu komplex sein" (squid: MethodCyclomaticComplexity) hat ein Beispiel für die Verwendung mehrerer Return-Anweisung im Programmblock. (siehe https://groups.google.com/forum/#!topic/sonarqube/BtvGoF6Tw7E für die Regeln zur Berechnung zyklischer Komplexität)Ist es eine schlechte Praxis, mehrere Rückgaben zu haben?
Die Rückgabe verkürzt die Codes in einem Zweig und führt zu kleineren Codeblöcken. Beispiel:
int findBranchNumber(String input) { if ("branch1".equals(input)) { return 1; } if ("branch2".equals(input)) { return 2; } // .... return -1; }
Die Alternative verwendet eine Methodenvariable (in diesem Fall) oder größere Blöcke. Wer den Code liest, muss die gesamte Methode lesen, bevor er feststellt, dass nur die ersten 3 Zeilen relevant für "Branch1" sind.
Bitte raten ...
Wie viele 'if' Aussagen haben Sie? Man könnte argumentieren, dass die Verwendung einer "Map" hier eine Verbesserung darstellt. –
Sie haben Recht. Eine Lookup Map ist ein besserer Ansatz für die Übersetzungsarbeit. – user2995767