En la página 45 del Código limpio de Robert C. Martin: Manual de Agile Software Craftsmanship, Martin escribe que se deben evitar los argumentos de salida. Tengo problemas para entender el significado de "argumento de salida" y por qué deben evitarse.
El ejemplo de Martin para un argumento de salida appendFooter(s);
llama a la función public void appendFooter(StringBuffer report)
. Su mejora del código es report.appendFooter();
Tal vez se deba a la falta de contexto de código, pero no veo cómo el uso de argumentos de salida se considera una codificación deficiente. ¿Alguien podría explicar el concepto o dar un ejemplo adicional de código para entender esto?
¿La siguiente función también se consideraría un ejemplo de código no limpio según el principio anterior?
int[] numberArray = {3, 5, 7, 1};
sortArray(numberArray);
Si lo anterior es una violación del principio de Martin de no usar argumentos de salida, ¿sería mejor tener un objeto que tenga una matriz como campo y una función a la que se pueda llamar para ordenar la matriz?
ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1);
numberArray.sort();