На сторінці 45 чистого кодексу Роберта К. Мартіна: Підручник з гнучкої майстерності програмного забезпечення, Мартін пише, що слід уникати аргументів виводу. У мене виникають проблеми з розумінням значення "вихідних аргументів" і чому їх слід уникати.
Приклад Мартіна для вихідного аргументу appendFooter(s);називає функцію public void appendFooter(StringBuffer report). Його поліпшення коду єreport.appendFooter();
Можливо, це пов'язано з відсутністю контексту коду, але я не бачу, як використання вихідних аргументів вважається поганим кодуванням. Чи може хтось пояснити поняття чи надати приклад прикладу коду, щоб зрозуміти це?
Чи вважалася б така функція прикладом нечистого коду за вищезазначеним принципом?
int[] numberArray = {3, 5, 7, 1};
sortArray(numberArray);
Якщо вищезазначене є порушенням принципу Мартіна щодо не використання вихідних аргументів, чи було б краще мати об’єкт, який має масив як поле та функцію, яку можна викликати для сортування масиву?
ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1);
numberArray.sort();
sortArray(numberArray)звичайно, сортуєnumberArrayна місці. Або він робить копіюnumberArray, сортує копію та повертає відсортовану копію, не змінюючи їїnumberArrayвзагалі?