आपके द्वारा दिया गया उदाहरण वास्तव में मेरी राय में ठीक है। आप आंतरिक कक्षाओं की घोषणा कर रहे हैं , इसलिए उन्हें एक ही फाइल में रखना पूरी तरह से समझदारी है । इसका एक ही तरीका है कि आपकी Items
कक्षा को एक आंशिक वर्ग बनाया जाए और इसे कई फाइलों में विभाजित किया जाए। मैं इस बुरे अभ्यास पर विचार करता हूं। नेस्टेड वर्गों के लिए मेरी सामान्य नीति यह है कि वे छोटे और निजी होने चाहिए। इसके दो अपवाद हैं:
- आप एक क्लास क्लस्टर (उद्देश्य-सी में अधिक सामान्य) डिजाइन कर रहे हैं, इस प्रकार यह आंशिक वर्ग दृष्टिकोण का उपयोग करने के लिए समझदार हो सकता है
- आपको एक एनम की आवश्यकता है जो केवल मूल वर्ग के सार्वजनिक एपीआई के साथ प्रयोग की जाती है। इस मामले में मैं अपने नाम स्थान को प्रदूषित करने के बजाय जनक वर्ग के अंदर घोषित सार्वजनिक दुश्मनी पसंद करता हूं। एक आंतरिक "एनम" होने के नाते यह प्रभावी रूप से एक अच्छी तरह से परिभाषित गुंजाइश देने का परिणाम है।
यदि आप प्रश्न को थोड़ा अलग करते हैं और "क्या मुझे प्रत्येक नेमस्पेस- क्लास को अपनी फ़ाइल में रखना चाहिए" के बारे में पूछते हैं, तो मेरा उत्तर "हाँ" होगा।
कक्षाएं डिजाइन करते समय हम एकल जिम्मेदारी सिद्धांत का सम्मान करते हैं। पठन कोड बहुत आसान हो जाता है यदि इसका आकार इसके शब्दार्थों का अनुसरण करता है, इसलिए कक्षा द्वारा फ़ाइलों को विभाजित करना समझदारी है।
एक यांत्रिक दृष्टिकोण से, प्रति वर्ग फ़ाइल होने के कई फायदे हैं। आप अलग-अलग विंडो में एक ही समय में कई कक्षाएं खोल सकते हैं। यह विशेष रूप से महत्वपूर्ण है क्योंकि कोई भी गंभीर डेवलपर दो से कम स्क्रीन के साथ काम नहीं करता है। मेरे सिर के सामने अधिक संदर्भ होने में सक्षम होने का मतलब है कि मैं अपने सिर में अधिक संदर्भ रख सकता हूं। (अधिकांश आईडीई की इच्छा आपको एक ही फाइल को दो बार खोलने की अनुमति देगी, लेकिन मुझे यह अजीब लगता है)।
अगला महत्वपूर्ण पहलू स्रोत नियंत्रण और विलय है। अपनी कक्षाओं को अलग रखकर, आप बहुत परेशानी से बचते हैं जब एक ही फाइल में बदलाव किए जाते हैं क्योंकि अलग-अलग कक्षाओं को बदलना पड़ता है।