@ पास्कल मार्टिन: हां, सामान्य आवेदकों में इसकी शायद आवश्यकता नहीं है। लेकिन कभी-कभी यह उपयोगी हो सकता है। अपने ऐप से एक उदाहरण पर विचार करें:
एक नियंत्रक सबक्लास है जो अपने आउटपुट को तैयार करने के लिए टेम्पलेट ऑब्जेक्ट का उपयोग कर सकता है। प्रत्येक टेम्पलेट का नाम इसका नाम है। जब एक नियंत्रक को टेम्पलेट की आवश्यकता होती है, तो वह उस नाम को पैरामीटर के रूप में देकर टेम्पलेट प्रबंधक से पूछता है। लेकिन अलग-अलग नियंत्रकों के लिए उस नाम के साथ कई टेम्पलेट फ़ाइलें हो सकती हैं। नियंत्रक प्लगइन के रूप में उपयोग किए जाते हैं, और विभिन्न उपयोगकर्ताओं द्वारा लिखे जा सकते हैं, इसलिए उनके द्वारा उपयोग किए जाने वाले नामों को एक-दूसरे के साथ टकराव नहीं किया जा सकता है। टेम्पलेट्स के लिए नामस्थान की आवश्यकता है। तो टेम्पलेट मैनेजर, जो टेम्पलेट ऑब्जेक्ट्स के लिए एक कारखाना है, उचित टेम्पलेट स्रोत फ़ाइल का पता लगाने के लिए टेम्पलेट नाम और नामस्थान नाम की आवश्यकता है। यह नामस्थान विशेष नियंत्रक के वर्ग नाम से संबंधित है।
लेकिन, ज्यादातर मामलों में, प्रत्येक नियंत्रक अपने नामस्थान से टेम्पलेट का उपयोग करेगा और केवल अन्य नामस्थानों के दुर्लभ मामलों में होगा। इसलिए प्रत्येक कॉल में नेमस्पेस को टेम्पलेटमैनेजर :: getTemplate() पर प्रत्येक बार एक गड़बड़ होगी। यह बेहतर है कि नामस्थान वैकल्पिक है और डिफ़ॉल्ट ... नियंत्रक जो टेम्पलेटमैनेजर :: getTemplate() को कॉल करता है! और कॉलर को जानने के लिए यहां एक अच्छी जगह है।
बेशक कॉलर नियंत्रक स्वयं या उसके नाम को पैरामीटर के रूप में पारित कर सकता है, लेकिन यह नामस्थान नाम को पार करने से वास्तव में बहुत अलग नहीं है। यह किसी भी तरह से वैकल्पिक नहीं हो सकता है।
लेकिन यदि आप कॉलर को जान सकते हैं, तो आप कॉलर को परेशान किए बिना स्वचालित रूप से getTemplate() के अंदर नामस्थान को डिफ़ॉल्ट रूप से नामित कर सकते हैं। यह जानना नहीं है कि getTemplate() इसे अपने अंदर कैसे संभाला जा रहा है और यह उचित डिफ़ॉल्ट नामस्थान को कैसे जानता है। उन्हें केवल यह पता होना चाहिए कि यह करता है, और यह वास्तव में किसी भी अन्य नामस्थान को वैकल्पिक रूप से पारित कर सकता है।
कार्य उदाहरण हमेशा अच्छे होते हैं। +1। :) – Randolpho
धन्यवाद ;-) (वे पहले जवाब प्राप्त करने का भी कारण नहीं हैं ^^ लेकिन, कम से कम, मेरे पास थोड़ा मजा भी है, इस तरह ;-)) –
उदाहरण के लिए धन्यवाद। हां, मैं कुछ हद तक सहमत हूं, कि विधियों को जानने की आवश्यकता नहीं है, लेकिन मेरे पास कुछ अन्य लोग जो लिख रहे हैं उसके शीर्ष पर कोड लिख रहे हैं और मैं उनका जीवन आसान बनाना चाहता हूं, वह। मुझे लगता है कि डीबग का उपयोग करना थोड़ा हैकिश है, लेकिन धन्यवाद, आपने मुझे डिबगिंग फ़ंक्शन में एक अच्छी अंतर्दृष्टि दी है, कुछ आईडी पहले कभी नहीं हुई थी। – Botto