मुख्य अंतर - स्टेटिक बाइंडिंग बनाम डायनेमिक बाइंडिंग
प्रोग्रामिंग भाषाएं जैसे जावा और सीऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (ओओपी) का समर्थन करती हैं। यह वस्तुओं का उपयोग करके सॉफ्टवेयर बनाने की अनुमति देता है। एक सॉफ्टवेयर सिस्टम या प्रोग्राम में कई ऑब्जेक्ट होते हैं। इन वस्तुओं में विशेषताएँ और विधियाँ हैं। गुण गुणों का वर्णन करते हैं। विधियाँ उन क्रियाओं का वर्णन करती हैं जो वस्तु द्वारा की जा सकती हैं। विधियों का उपयोग करके वस्तुओं के माध्यम से डेटा पारित किया जाता है। आवश्यक मान पैरामीटर के साथ विधि कॉल के माध्यम से भेजे जाते हैं। वास्तविक विधि कार्यान्वयन विधि परिभाषा में है। एक विधि कॉल और विधि परिभाषा के बीच एक कड़ी है।इसे बंधन के रूप में जाना जाता है। बंधन दो प्रकार के होते हैं। वे स्थिर बंधन और गतिशील बंधन हैं। स्टैटिक बाइंडिंग और डायनेमिक बाइंडिंग के बीच महत्वपूर्ण अंतर यह है कि, स्टैटिक बाइंडिंग में, बाइंडिंग को कंपाइल समय पर हल किया जाता है जबकि डायनेमिक बाइंडिंग को रन टाइम पर हल किया जाता है, जो कि निष्पादन का वास्तविक समय है। यह आलेख इन दो बाध्यकारी तंत्रों के बीच अंतर पर चर्चा करता है।
स्टेटिक बाइंडिंग क्या है?
बाइंडिंग एक मेथड कॉल और मेथड डेफिनिशन के बीच की कड़ी है।
चित्र 01: स्टेटिक बाइंडिंग और डायनेमिक बाइंडिंग
जावा में लिखे गए निम्न प्रोग्राम को देखें।
पब्लिक क्लास ए{
सार्वजनिक शून्य विधि1(){
System.out.println(“Method1”);
}
सार्वजनिक शून्य विधि2(){
System.out.println(“Method2”);
}
सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args) {
ए ओब्ज=नया ए ();
obj.method1();
obj.method2 ();
}
}
उपरोक्त प्रोग्राम के अनुसार A प्रकार का एक ऑब्जेक्ट बनाया जाता है। फिर मेथड 1 और मेथड 2 को कॉल किया जाता है। निष्पादन के लिए किस विधि को कॉल करना चाहिए, इसकी पहचान करना बाध्यकारी के रूप में जाना जाता है। कथन obj.method1() method1() को कॉल करेगा और obj.method2() method2() को कॉल करेगा। यह लिंक बाध्यकारी है।
स्टेटिक बाइंडिंग में, कंपाइलर द्वारा कंपाइल टाइम पर बाइंडिंग का समाधान किया जाता है। इसे अर्ली बाइंडिंग के रूप में भी जाना जाता है। किसी प्रोग्राम के वास्तव में चलने से पहले बाइंडिंग होती है। स्टैटिक बाइंडिंग विधि ओवरलोडिंग में होती है। जावा में लिखे गए प्रोग्राम को देखें।
सार्वजनिक शून्य गणना{
सार्वजनिक शून्य योग(int x, int y){
System.out.println(“योग है”, x+y);
}
सार्वजनिक शून्य राशि(डबल एक्स, डबल वाई){
System.out.println(“योग है”, x+y);
}
सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args) {
गणना कैल=नई गणना ();
cal.sum(2, 3);
cal.sum(5.1, 6.4);
}
}
उपरोक्त कार्यक्रम के अनुसार, दो पूर्णांकों को पास करते समय, दो पूर्णांकों वाली विधि लागू की जाएगी। दो दोहरे मूल्यों को पारित करते समय, दो दोहरे मूल्यों के अनुरूप विधि लागू की जाएगी। यह बाध्यकारी प्रक्रिया संकलन के समय होती है। संकलक जानता है कि उसे cal.sum(2, 3) के लिए दो पूर्णांक मानों के साथ योग विधि को कॉल करना चाहिए। कैल (5.1, 6.4) के लिए, यह दो डबल मानों के साथ योग विधि को कॉल करेगा। सभी आवश्यक जानकारी रनटाइम से पहले जानी जाती है, इसलिए यह प्रोग्राम की दक्षता और निष्पादन की गति को बढ़ाता है।
डायनेमिक बाइंडिंग क्या है?
डायनेमिक बाइंडिंग में कंपाइलर कंपाइल समय पर बाइंडिंग को हल नहीं करता है। बाइंडिंग रन टाइम पर होती है। इसे लेट बाइंडिंग के रूप में भी जाना जाता है। डायनामिक बाइंडिंग विधि ओवरराइडिंग में होती है। जावा में लिखे गए प्रोग्राम का संदर्भ लें।
पब्लिक क्लास शेप (){
सार्वजनिक शून्य ड्रा (){
System.out.println(“आकृति बनाएं”);
}
}
पब्लिक क्लास सर्कल () आकार बढ़ाता है{
सार्वजनिक शून्य ड्रा (){
System.out.println(“वृत्त बनाएं”);
}
}
पब्लिक क्लास Triangle() आकार बढ़ाता है{
सार्वजनिक शून्य ड्रा (){
System.out.println("त्रिकोण बनाएं");
}
}
पब्लिक क्लास टेस्ट{
सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग args){
आकार एस;
s=नया आकार ();
s.draw ();
s=नया सर्किल ();
s.draw ();
s=नया त्रिभुज ();
s.draw ();
}
}
उपरोक्त कार्यक्रम के अनुसार, क्लास शेप में एक मेथड ड्रा () होता है। क्लास सर्कल और क्लास ट्रायंगल शेप क्लास का विस्तार करता है। क्लास सर्कल और क्लास ट्राएंगल क्लास शेप की विशेषताओं और विधियों को इनहेरिट कर सकते हैं। इसलिए, क्लास शेप सुपर क्लास या पैरेंट क्लास है। वर्ग वृत्त और वर्ग त्रिभुज उपवर्ग या व्युत्पन्न वर्ग हैं। इन वर्गों में अपने स्वयं के कार्यान्वयन के साथ ड्रा () विधि भी है। इसलिए, सुपर क्लास में ड्रा () विधि ओवरराइड है।
मुख्य विधि में, विभिन्न वस्तुओं का आह्वान किया जाता है। शेप टाइप का एक रेफरेंस वेरिएबल है, जो s है। फिर, s विशिष्ट वर्ग के अनुसार विधि का आह्वान करता है। संकलन समय पर, कंपाइलर केवल सुपर क्लास ड्रा विधि को संदर्भित करेगा।जब वास्तविक निष्पादन शुरू होता है, तो यह विभिन्न ड्रा विधियों के निष्पादन की ओर ले जाएगा। सबसे पहले, s आकार के प्रकार की वस्तु की ओर इशारा करेगा। इसलिए, यह आकृति वर्ग में ड्रा विधि को लागू करेगा। फिर एस सर्कल प्रकार की वस्तु को इंगित करेगा, और यह सर्कल क्लास की ड्रा विधि को लागू करेगा। अंत में, s त्रिभुज प्रकार की वस्तु का उल्लेख करेगा, और यह त्रिभुज वर्ग में ड्रा विधि को लागू करेगा। भले ही संदर्भ चर आकार प्रकार का है, बाध्यकारी वस्तु प्रकार पर निर्भर करता है। इस अवधारणा को डायनेमिक बाइंडिंग के रूप में जाना जाता है। जानकारी रन टाइम पर प्रदान की जाती है, इसलिए निष्पादन की गति स्थिर बाइंडिंग की तुलना में धीमी होती है।
स्टेटिक बाइंडिंग और डायनामिक बाइंडिंग के बीच समानता क्या है?
ये दोनों एक बहुरूपता से संबंधित हैं जो किसी वस्तु को कई तरह से व्यवहार करने की अनुमति देता है।
स्टेटिक बाइंडिंग और डायनेमिक बाइंडिंग में क्या अंतर है?
स्टेटिक बाइंडिंग बनाम डायनेमिक बाइंडिंग |
|
स्टेटिक बाइंडिंग एक प्रकार की बाइंडिंग है जो संकलन समय के दौरान किसी फ़ंक्शन को कॉल करने के लिए सभी आवश्यक जानकारी एकत्र करती है। | डायनेमिक बाइंडिंग एक प्रकार की बाइंडिंग है जो रन टाइम के दौरान किसी फ़ंक्शन को कॉल करने के लिए सभी आवश्यक जानकारी एकत्र करती है। |
बंधन का समय | |
स्थिर बंधन संकलन समय पर होता है। | डायनेमिक बाइंडिंग रन टाइम पर होती है। |
कार्यक्षमता | |
स्टेटिक बाइंडिंग बाइंडिंग के लिए प्रकार की जानकारी का उपयोग करता है। | डायनेमिक बाइंडिंग, बाइंड करने के लिए हल करने के लिए ऑब्जेक्ट का उपयोग करती है। |
वास्तविक वस्तु | |
स्थैतिक बंधन बंधन के लिए वास्तविक वस्तु का उपयोग नहीं करता है। | डायनामिक बाइंडिंग, बाइंडिंग के लिए वास्तविक ऑब्जेक्ट का उपयोग करें। |
समानार्थी | |
स्थिर बंधन को अर्ली बाइंडिंग के रूप में भी जाना जाता है। | डायनेमिक बाइंडिंग को लेट बाइंडिंग के रूप में भी जाना जाता है। |
निष्पादन | |
स्थिर बंधन में निष्पादन की गति तेज है। | डायनेमिक बाइंडिंग में निष्पादन की गति कम है। |
उदाहरण | |
स्टेटिक बाइंडिंग का उपयोग मेथड ओवरलोडिंग में किया जाता है। | डाइनैमिक बाइंडिंग का उपयोग मेथड ओवरराइडिंग में किया जाता है। |
सारांश – स्टेटिक बाइंडिंग बनाम डायनेमिक बाइंडिंग
विधि कॉल और विधि परिभाषा के बीच एक कड़ी है।इसे बंधन के रूप में जाना जाता है। दो प्रकार के बंधन होते हैं जिन्हें स्थैतिक बंधन और गतिशील बंधन कहा जाता है। स्टैटिक बाइंडिंग और डायनेमिक बाइंडिंग के बीच का अंतर यह है कि स्टैटिक बाइंडिंग में, बाइंडिंग को कंपाइल समय पर हल किया जाता है जबकि डायनेमिक बाइंडिंग को रन टाइम पर हल किया जाता है, जो कि निष्पादन का वास्तविक समय है। चूंकि आवश्यक जानकारी रन टाइम से पहले प्रदान की जाती है, डायनेमिक बाइंडिंग की तुलना में स्टैटिक बाइंडिंग निष्पादन में तेज़ होती है।
स्टेटिक बाइंडिंग बनाम डायनेमिक बाइंडिंग का पीडीएफ डाउनलोड करें
आप इस लेख का पीडीएफ संस्करण डाउनलोड कर सकते हैं और उद्धरण नोट के अनुसार इसे ऑफ़लाइन उद्देश्यों के लिए उपयोग कर सकते हैं। कृपया पीडीएफ संस्करण यहां डाउनलोड करें: स्टेटिक बाइंडिंग और डायनेमिक बाइंडिंग के बीच अंतर