क्या किसी init()
प्रकार के लिए एक विधि घोषित करने का कोई उद्देश्य है ?
मैं यह नहीं पूछ रहा हूं कि हमें किसी कंस्ट्रक्टर के ऊपर पसंदinit()
करना चाहिए या घोषणा करने से कैसे बचना चाहिएinit()
।
मैं पूछ रहा हूं कि क्या कोई विधि घोषित करने के पीछे कोई तर्क है init()
(यह देखना कि यह कितना सामान्य है) या यदि यह एक कोड गंध है और इसे टाला जाना चाहिए।
init()
मुहावरा बहुत आम है, लेकिन मैं अभी तक किसी भी वास्तविक लाभ प्राप्त करना है।
मैं उन तरीकों के बारे में बात कर रहा हूं जो एक विधि के माध्यम से आरंभ को प्रोत्साहित करते हैं:
class Demo {
public void init() {
//...
}
}
यह उत्पादन कोड में कब इस्तेमाल होगा?
मुझे लगता है कि यह एक कोड गंध हो सकता है क्योंकि यह सुझाव देता है कि निर्माता पूरी तरह से ऑब्जेक्ट को इनिशियलाइज़ नहीं करता है, जिसके परिणामस्वरूप आंशिक रूप से बनाई गई ऑब्जेक्ट है। यदि स्थिति सेट नहीं है, तो ऑब्जेक्ट मौजूद नहीं होना चाहिए।
यह मुझे विश्वास दिलाता है कि यह उद्यम अनुप्रयोगों के अर्थ में उत्पादन को गति देने के लिए इस्तेमाल की जाने वाली कुछ प्रकार की तकनीक का हिस्सा हो सकता है। यह केवल एक तार्किक कारण है कि मैं इस तरह के मुहावरे के बारे में सोच सकता हूं, मुझे यकीन नहीं है कि यदि ऐसा है तो यह कैसे फायदेमंद होगा।
init()
व्युत्पन्न वर्ग पर कॉल करता है , या इसके विपरीत?) यदि हां, तो यह बेस क्लास को "पोस्ट-कंस्ट्रक्टर" निष्पादित करने का एक उदाहरण है। "जिसे केवल सबसे व्युत्पन्न वर्ग के निर्माण के बाद निष्पादित किया जा सकता है। यह बहु-चरण आरंभीकरण का एक उदाहरण है।