भ्रम में दो प्रमुख अवधारणाएँ हैं: बंधन और लोडिंग। यह डेटाबाइंडिंग की अवधारणा से परिचित होता है, जो कि कहीं न कहीं बीच में अक्सर दोनों कर रहा है। इस पर विचार करने के बाद, मैं एक और अवधारणा जोड़ने जा रहा हूं, ट्रिफेक्टा को पूरा करने के लिए, प्रेषण।
प्रकार
लेट बाइंडिंग : प्रकार अज्ञात है जब तक रन-टाइम के दौरान चर का उपयोग नहीं किया जाता है; आमतौर पर असाइनमेंट के माध्यम से, लेकिन एक प्रकार के मोटे करने के लिए अन्य साधन हैं; गतिशील रूप से टाइप की गई भाषाएं इसे एक अंतर्निहित विशेषता कहती हैं, लेकिन कई सांख्यिकीय रूप से टाइप की गई भाषाओं में देर से बाध्यकारी प्राप्त करने की कुछ विधि होती है
अक्सर [विशेष] गतिशील प्रकार, आत्मनिरीक्षण / प्रतिबिंब, झंडे और कंपाइलर विकल्पों का उपयोग करके या आभासी तरीकों के माध्यम से लागू किया जाता है और गतिशील प्रेषण को उधार लेकर और विस्तारित करके।
प्रारंभिक बंधन : प्रकार को रन-टाइम के दौरान चर का उपयोग करने से पहले जाना जाता है, आमतौर पर एक स्थिर, घोषणात्मक माध्यम से
मानक आदिम प्रकारों का उपयोग करके अक्सर लागू किया जाता है
कार्य
स्टेटिक डिस्पैच : संकलित समय पर ज्ञात, विशिष्ट कार्य या सबरूटीन; यह असंदिग्ध है और हस्ताक्षर से मेल खाता है
स्थिर कार्यों के रूप में लागू किया गया; किसी भी विधि में समान हस्ताक्षर नहीं हो सकते
डायनेमिक डिस्पैच : संकलित समय पर एक विशिष्ट फ़ंक्शन या सबरूटीन नहीं ; निष्पादन के दौरान संदर्भ द्वारा निर्धारित किया जाता है। "गतिशील प्रेषण" के लिए दो अलग-अलग दृष्टिकोण हैं, जो उपयुक्त फ़ंक्शन कार्यान्वयन का चयन करने के लिए प्रासंगिक जानकारी का उपयोग करके प्रतिष्ठित हैं।
में एकल [ गतिशील ] प्रेषण , केवल उदाहरण के प्रकार के उचित समारोह कार्यान्वयन निर्धारित करने के लिए प्रयोग किया जाता है। वैधानिक रूप से टाइप की जाने वाली भाषाओं में, इसका मतलब यह है कि उदाहरण प्रकार यह तय करता है कि किस तरह का प्रयोग किया जाता है, भले ही संदर्भित प्रकार का उपयोग किया जाता है, जब चर घोषित / असाइन किया गया हो। क्योंकि केवल एकल प्रकार - ऑब्जेक्ट इंस्टेंस का प्रकार - उपयुक्त कार्यान्वयन का अनुमान लगाने के लिए उपयोग किया जाता है, इस दृष्टिकोण को "एकल प्रेषण" कहा जाता है।
वहाँ भी है एक से अधिक [ गतिशील ] प्रेषण , जहां इनपुट पैरामीटर प्रकार भी इसका पता लगाने में जो समारोह कार्यान्वयन कॉल करने के लिए। क्योंकि कई प्रकार - दोनों प्रकार के उदाहरण और प्रकार (ओं) के पैरामीटर (ओं) को प्रभावित करते हैं कि किस पद्धति का चयन किया जाता है, इस दृष्टिकोण को "कई प्रेषण" कहा जाता है।
आभासी या सार कार्यों के रूप में लागू किया गया; अन्य सुरागों में ओवरराइड, छिपा हुआ या छायांकित तरीके शामिल हैं।
NB: ओवरलोडिंग में विधि शामिल है या नहीं, डायनेमिक प्रेषण भाषा-विशिष्ट है। उदाहरण के लिए, जावा में, ओवरलोड तरीके विधिपूर्वक भेजे जाते हैं।
मान
आलसी लोड हो रहा है : ऑब्जेक्ट आरंभीकरण रणनीति जो आवश्यकता तक मूल्य असाइनमेंट को धता बताती है ; किसी ऑब्जेक्ट को अनिवार्य रूप से मान्य लेकिन जानबूझकर अपूर्ण स्थिति में होने की अनुमति देता है और इसे लोड करने से पहले डेटा की आवश्यकता होने तक प्रतीक्षा करता है; अक्सर बड़े डेटासेट लोड करने या बाहरी संसाधनों पर प्रतीक्षा करने के लिए विशेष रूप से उपयोगी पाया जाता है
जब तक कि कुछ डाउनस्ट्रीम कॉलर उस संग्रह की सामग्री (जैसे। Get_value_at, get_all_as, आदि) को देखने के लिए कहता है, तब तक अक्सर उद्देश्य से संग्रह या सूची को एक समग्र वस्तु में लोड नहीं किया जाता है। भिन्नताओं में संग्रह (जैसे आकार या कुंजियाँ) के बारे में मेटा जानकारी लोड करना शामिल है, लेकिन वास्तविक डेटा को छोड़ देना; डेवलपर्स को काफी सुरक्षित और कुशल सिंगलटन कार्यान्वयन योजना प्रदान करने के लिए कुछ रनटाइम के लिए एक तंत्र भी प्रदान करता है
एगर लोडिंग : ऑब्जेक्ट इनिशियलाइज़ेशन स्ट्रैटेजी जो सभी वैल्यू असाइनमेंट्स को तुरंत पूरा करती है ताकि एक वैध स्थिति में होने से पहले सभी डेटा को पूरा करने की आवश्यकता हो।
कंस्ट्रक्टर कॉल या इनिशियलाइज़ेशन के दौरान, जितनी जल्दी हो सके अपने सभी ज्ञात डेटा के साथ एक समग्र ऑब्जेक्ट प्रदान करके अक्सर लागू किया जाता है
डेटा बाइंडिंग : अक्सर दो संगत सूचना धाराओं के बीच एक सक्रिय लिंक या मानचित्र बनाना शामिल होता है ताकि एक में परिवर्तन दूसरे में वापस प्रतिबिंबित हो और इसके विपरीत; संगत होने के लिए उनके पास अक्सर एक सामान्य आधार प्रकार, या इंटरफ़ेस होना चाहिए
अक्सर क्लीनर प्रदान करने के प्रयास के रूप में लागू किया जाता है, विभिन्न अनुप्रयोगों के पहलुओं (जैसे देखने के लिए मॉडल, नियंत्रक के लिए मॉडल, आदि) और स्रोत और लक्ष्य, समापन बिंदु, बाँध / unbind, अद्यतन और घटनाओं जैसी अवधारणाओं के बारे में वार्ता के बीच लगातार सिंक्रनाइज़ेशन। on_bind, on_property_change, on_explicit, on_out_of_scope
संपादित करें नोट: अंतिम बार संपादित करें कि ये अक्सर कैसे होते हैं, उदाहरणों का विवरण प्रदान करने के लिए। विशेष कोड के उदाहरण पूरी तरह से कार्यान्वयन / रनटाइम / प्लेटफॉर्म पर निर्भर करते हैं