मैं मदद मिलेगी बनाओ देखें कि कुछ लोग सात की ऊपरी सीमा के रूप में सिफारिश कर रहे हैं। जाहिर है, यह सच नहीं है कि लोग एक बार में अपने सिर में सात चीजें रख सकते हैं; वे केवल चार याद कर सकते हैं (सुसान Weinschenk, 100 चीजें प्रत्येक डिजाइनर को लोगों के बारे में जानना चाहिए, 48)।फिर भी, मैं चार को एक उच्च पृथ्वी कक्षा के रूप में मानता हूं। लेकिन ऐसा इसलिए है क्योंकि मेरी सोच बॉब मार्टिन द्वारा बदल दी गई है।
में स्वच्छ कोड, अंकल बॉब पैरामीटर की संख्या के लिए सामान्य ऊपरी सीमा के रूप में तीन के लिए तर्क देता है।
एक समारोह के लिए बहस की आदर्श संख्या शून्य (niladic) है: वह कट्टरपंथी दावा (40) बनाता है। अगला एक (monadic) दो (डायाडिक) द्वारा बारीकी से पीछा किया जाता है। जहां संभव हो वहां तीन तर्क (त्रिभुज) से बचा जाना चाहिए। तीन से अधिक (पॉलीएडिक) के लिए बहुत विशेष औचित्य — की आवश्यकता होती है और फिर भी इसका उपयोग नहीं किया जाना चाहिए।
वह पठनीयता के कारण इस कहते हैं; लेकिन टेस्टेबिलिटी के कारण भी:
सभी परीक्षण मामलों को लिखने में कठिनाई की कल्पना करें ताकि यह सुनिश्चित किया जा सके कि तर्क के सभी संयोजन संयोजन सही तरीके से काम करते हैं।
मैं आपको अपनी पुस्तक की एक प्रति ढूंढने और फ़ंक्शन तर्क (40-43) की पूरी चर्चा पढ़ने के लिए प्रोत्साहित करता हूं।
मैं उन लोगों से सहमत हूं जिन्होंने एकल उत्तरदायित्व सिद्धांत का उल्लेख किया है। मेरे लिए यह विश्वास करना मुश्किल है कि एक वर्ग जिसे दो या तीन मूल्यों/वस्तुओं को उचित चूक के बिना चाहिए, वास्तव में केवल एक ही जिम्मेदारी है, और निकाली गई किसी अन्य वर्ग के साथ बेहतर नहीं होगी।
अब, यदि आप कन्स्ट्रक्टर के माध्यम से अपनी निर्भरताओं को इंजेक्ट कर रहे हैं, तो बॉब मार्टिन के तर्कों के बारे में तर्क है कि कन्स्ट्रक्टर को आमंत्रित करना कितना आसान है (इसलिए आम तौर पर तब आपके आवेदन में केवल एक बिंदु होता है जहां आप इसे तार देते हैं , या आपके पास एक ढांचा भी है जो आपके लिए करता है)। हालांकि, एकल उत्तरदायित्व सिद्धांत अभी भी प्रासंगिक है: कक्षा में चार निर्भरताओं के बाद, मुझे लगता है कि एक गंध है कि यह बड़ी मात्रा में काम कर रही है।
हालांकि, कंप्यूटर विज्ञान में सभी चीजों के साथ के रूप में, वहाँ निस्संदेह निर्माता मानकों की एक बड़ी संख्या होने के लिए मान्य मामले हैं। बड़ी संख्या में पैरामीटर का उपयोग करने से बचने के लिए अपने कोड को मतभेद न करें; लेकिन यदि आप बड़ी संख्या में पैरामीटर का उपयोग करते हैं, तो इसे रोकें और इसे कुछ विचार दें, क्योंकि इसका मतलब यह हो सकता है कि आपका कोड पहले से ही अलग हो गया है।
मुझे इसे "नामित पैरामीटर इडियॉम" के रूप में जाना जाता है: http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.18। संबंधित: वहाँ भी "नामांकित निर्माता मुहावरा" है: http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.8 – Frank
आप कोड के फोन करने वाले और कॉल प्राप्त करने वाला क्षेत्रों को अलग करने के लिए कर सकते हैं यह स्पष्ट है कि वे अलग-अलग संस्थाएं हैं? –
शून्य मानों के लिए चेक (उपनाम == नल || firstName == null || ssn == null) ग्राहक ऑब्जेक्ट पर किया जाना चाहिए। ग्राहक ऑब्जेक्ट बनने से पहले इन मानों को संशोधित करने की संभावना के कारण यह है। इसके अलावा, सुनिश्चित करें कि ग्राहक वर्ग के क्षेत्र सभी को "निजी अंतिम" घोषित किया गया है - जिससे ग्राहक अपरिवर्तनीय हो। – drozzy