Robert C. Martin'in Temiz Kodu: Agile Yazılım İşçiliği El Kitabı'nın 45. sayfasında Martin, çıktı argümanlarından kaçınılması gerektiğini yazıyor. "Çıktı argümanının" anlamını ve neden bunlardan kaçınılması gerektiğini anlamakta zorlanıyorum.
Martin'in çıktı argümanı örneği appendFooter(s);
işlevi çağırır public void appendFooter(StringBuffer report)
. Koddaki gelişimireport.appendFooter();
Belki de kod bağlamının eksikliğinden kaynaklanıyor, ancak çıktı argümanlarını kullanmanın nasıl kötü kodlama olarak değerlendirildiğini görmüyorum. Birisi kavramı açıklayabilir veya bunu anlamak için kod örneği verebilir mi?
Aşağıdaki fonksiyon yukarıdaki prensibe göre kirli kod örneği olarak düşünülebilir mi?
int[] numberArray = {3, 5, 7, 1};
sortArray(numberArray);
Yukarıdakiler Martin'in çıktı argümanlarını kullanmama ilkesinin ihlali durumunda, alan olarak dizi içeren bir nesneye ve diziyi sıralamak için çağrılabilecek bir işleve sahip olmak daha iyi olur mu?
ObjectWithArrayField numberArray = new ObjectWithArrayField(3, 5, 7, 1);
numberArray.sort();
sortArray(numberArray)
, tabii ki,numberArray
yerinde sıralar . Yoksa değiştirilmeden bir kopyasını oluştururnumberArray
, kopyasını sıralar ve sıralanmış kopyayı döndürürnumberArray
mü?