रॉबर्ट सी। मार्टिन के क्लीन कोड: ए हैंडबुक ऑफ एजाइल सॉफ्टवेयर क्राफ्ट्समैनशिप के पेज 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
?