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