हाँ, आप निश्चित रूप से कुछ याद कर रहे हैं । गोतोस आमतौर पर इस्तेमाल किया जाएगा, जैसा कि आपने कहा था, नियंत्रण के एक-तरफ़ा हस्तांतरण को करने के लिए।
हालाँकि, इवेंट ऐसा नहीं करते हैं। जब कोड घटना को आग लगाता है, तो यह अच्छी तरह से जानता है कि एक बार घटना प्रकाशित होने पर (या संसाधित, पंक्तिबद्ध, निकाल दिया गया ... आदि) कोड निष्पादन घटना को उत्पन्न करने वाले कोड में बहुत अगली पंक्ति पर फिर से शुरू होगा।
गोटो का उपयोग कोड के बीच एक बहुत ही तंग युग्मन बनाता है जो उस बयान को कॉल करता है और कोड जो प्राप्त होने वाले छोर पर है। डेवलपर को गोटो का उपयोग करने के लिए दोनों स्थानों का अंतरंग ज्ञान होना चाहिए।
दूसरी ओर, कोड जो घटनाओं को आग लगाते हैं, आमतौर पर उस घटना को सुनने के लिए रुचि रखने वाले या देखभाल करने वाले को पता नहीं होगा। कोई श्रोता हो सकता है। या 100 श्रोता हो सकते हैं या 0. वे श्रोता उसी कार्यक्रम में हो सकते हैं जहाँ घटना को निकाल दिया गया था, या वे पूरी तरह से अलग आवेदन में हो सकते हैं, या वे एक अलग मशीन पर हो सकते हैं। जहां तक प्रकाशक का सवाल है, जैसे ही वह इस घटना को उत्पन्न करता है उसका काम हो जाता है।
यदि आप अभी तक मेरे साथ हैं, तो मैंने ऊपर जो वर्णन किया है, वह पब / सब पैटर्न का आदर्श मामला है। दुर्भाग्य से वास्तविक दुनिया में चीजें हमेशा आदर्श नहीं होती हैं और ऐसे मामले होते हैं जहां प्रकाशक एक घटना उत्पन्न करते हैं, एक ग्राहक को आमंत्रित किया जाता है, राज्य की एक पूरी गुच्छा को बदल देता है और जब तक कोड निष्पादन प्रकाशक "दुनिया" में वापस आ जाता है उल्टा हो गया। और मुझे यकीन है कि आप इसे अतीत में चला चुके हैं, क्योंकि यह स्थिति अक्सर तब उत्पन्न होती है जब पब / उप पैटर्न बहुत सरल तरीके से लागू होता है (जैसे सी # में प्रतिनिधियों या घटनाओं के उपयोग के माध्यम से, या सी में फ़ंक्शन / इंटरफ़ेस पॉइंटर्स) / C ++)।
लेकिन यह समस्या अनिवार्य रूप से पब / उप पैटर्न नहीं है, बल्कि इसके कार्यान्वयन की है। यही कारण है कि कई प्रणालियां कतारों पर भरोसा करती हैं ताकि जब कोई घटना प्रकाशित हो, तो इसे बस बाद में आमंत्रित किया जाए ताकि प्रकाशक को निष्पादन खत्म करने का मौका मिले जबकि दुनिया अभी भी बरकरार है। जब प्रकाशक काम कर रहा होता है, तो एक ईवेंट लूप (उर्फ डिस्पैच लूप) घटनाओं को बंद कर देगा और ग्राहकों को आमंत्रित करेगा।
return
,try/catch
,break
,continue
,switch
- उन सबgoto
। गोटो में बनाया गया प्रतिबंध के विभिन्न स्तरों के साथ माना जाता हानिकारक कैसे कोड काम करता है के बारे में सोच के लिए हानिकारक है।