A pagina 45 del Codice pulito di Robert C. Martin: Un manuale di abilità software agile, Martin scrive che gli argomenti di output dovrebbero essere evitati. Ho difficoltà a capire il significato di "argomento di output" e perché dovrebbero essere evitati.
L'esempio di Martin per un argomento di output appendFooter(s);
chiama la funzione public void appendFooter(StringBuffer report)
. Il suo miglioramento del codice è report.appendFooter();
Forse è dovuto alla mancanza di un contesto di codice, ma non vedo come utilizzare gli argomenti di output sia considerato una codifica scadente. Qualcuno potrebbe spiegare il concetto o dare un ulteriore esempio di codice per capire questo?
La seguente funzione potrebbe anche essere considerata un esempio di codice non pulito dal principio di cui sopra?
int[] numberArray = {3, 5, 7, 1};
sortArray(numberArray);
Se quanto sopra è una violazione del principio di Martin di non usare gli argomenti di output, sarebbe meglio avere un oggetto che ha una matrice come un campo e una funzione che può essere chiamata per ordinare l'array?
ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1);
numberArray.sort();