Di halaman 45 dari Robert C. Martin Clean Code: A Handbook of Agile Software Craftsmanship, Martin menulis bahwa argumen keluaran harus dihindari. Saya mengalami kesulitan memahami arti "argumen keluaran" dan mengapa mereka harus dihindari.
Contoh Martin untuk argumen keluaran appendFooter(s);
memanggil fungsi public void appendFooter(StringBuffer report)
. Peningkatan kodenya adalahreport.appendFooter();
Mungkin karena kurangnya konteks kode, tapi saya tidak melihat bagaimana menggunakan argumen keluaran dianggap pengkodean yang buruk. Bisakah seseorang menjelaskan konsep atau memberikan contoh kode tambahan untuk memahami hal ini?
Apakah fungsi berikut ini juga dapat dianggap sebagai contoh kode najis oleh prinsip di atas?
int[] numberArray = {3, 5, 7, 1};
sortArray(numberArray);
Jika hal di atas merupakan pelanggaran prinsip Martin karena tidak menggunakan argumen output, apakah lebih baik memiliki objek yang memiliki array sebagai bidang dan fungsi yang dapat dipanggil untuk mengurutkan array?
ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1);
numberArray.sort();
sortArray(numberArray)
, tentu saja, ada beberapanumberArray
tempat. Atau apakah itu membuat salinannumberArray
, mengurutkan salinan, dan mengembalikan salinan yang diurutkan tanpa mengubahnumberArray
sama sekali?