आधुनिक सॉफ़्टवेयर में कॉलिंग फ़ंक्शन पर 25 ढीले चर होने के लिए यह काफी असामान्य होगा, और फिर इन्हें स्पष्ट रूप से किसी विधि या ctor पर पास करें।
ओओ डिज़ाइन में अक्सर नहीं, इन चरों को पहले से ही एक क्लास (या कुछ कक्षाओं) में पैक किया जाएगा, जो उनकी तार्किक जिम्मेदारियों पर आधारित है।
और Java
स्टैक पर एक ऑब्जेक्ट संदर्भ पास करने के संदर्भ में वस्तुओं को पास करता है, तो कुछ प्रदर्शन लाभ (ढेर को धक्का देने के लिए कम चर) हो सकता है। हालांकि वास्तविक लाभ कोड पठनीयता और रखरखाव होगा।
हालांकि यह ध्यान दिया जाना चाहिए कि ऐसा करने के लिए उपभोक्ता और सेवा के बीच पारित वस्तु की कक्षा को साझा किया जाना चाहिए - ट्रांसफर क्लास मॉडलिंग के आधार पर यह एक मुद्दा हो सकता है (उदाहरण के लिए यह एक डाटा ट्रांसफर है ऑब्जेक्ट, एक बिजनेस एंटिटी, एक व्यू मॉडल, एक्सएमएल/जेएसओएन सीरियलाइजेशन ऑब्जेक्ट इत्यादि?)। यदि कॉलर और कैली के बीच साझा करने का प्रकार आपके आर्किटेक्चर का उल्लंघन करेगा, तो आप आम तौर पर 25 चर को किसी अन्य उपयुक्त कैननिकल क्लास (या कक्षाओं, फिर से एसआरपी रिफैक्टरिंग चिंताओं को देखकर) में मैप करेंगे और इसके बजाय इसे (इन) पास करेंगे। इस बिंदु पर, कोई प्रदर्शन लाभ नहीं होगा, लेकिन पठनीयता/रखरखाव लाभ बनाए रखा जाएगा।
एक निर्माता के लिए पासिंग कि कई मापदंडों की तत्परता में सुधार होगा पता चलता है कि वैसे भी ध्यान दिए बिना की एक कोड गंध है प्रदर्शन। उन कई मानकों के साथ, आपको एक त्रुटि करने की संभावना है (उदा। उसी प्रकार के दो पैरामीटर को उलटाना)। –
http://stackoverflow.com/questions/5727336/performance-of-variable-argument-methods-in-java, जो आपकी मदद करनी चाहिए। –
मैं आपके आवेदन के विभिन्न पहलुओं को प्रोफाइल करने का सुझाव दूंगा ताकि यह पता लगाया जा सके कि बोतल की गर्दन वास्तव में अनुकूलित करने की कोशिश करने से पहले कहां है। उदाहरण के लिए, नेटवर्क एक्सेस, खराब लिखित डेटाबेस क्वेरी आदि शामिल कुछ भी – Romski