2009-06-21 8 views
11

एक प्रश्न पहले से ही उत्तर दिया गया है जो In C#, isn't the observer pattern already implemented using Events?प्रतिनिधियों के साथ सी # में लागू पर्यवेक्षक पैटर्न?

यह पूछता है कि पर्यवेक्षक पैटर्न पहले से ही घटनाओं का उपयोग कर सी # में लागू किया गया है या नहीं।

जबकि मुझे घटनाएं और पर्यवेक्षक पैटर्न मिलते हैं, क्या पर्यवेक्षक पैटर्न वास्तव में केवल प्रतिनिधि नहीं हैं और घटनाएं एक और कार्यान्वयन है?

+0

क्या आप अपने प्रश्न पर विस्तार कर सकते हैं? आपको दूसरे प्रश्न और उसके उत्तर से अवगत होना प्रतीत होता है, इसलिए आप इसके अलावा कुछ पूछ रहे हैं, लेकिन यह मेरे लिए अस्पष्ट है कि यह क्या है। –

उत्तर

28

आप सही हैं। एक घटना बस कुछ अलग कार्यक्षमता के साथ एक प्रतिनिधि है। सभी पर्यवेक्षक पैटर्न को event कीवर्ड को छूए बिना प्रतिनिधियों के साथ कार्यान्वित किया जा सकता है।

तब आप रुचि रखते हैं, "ईवेंट" कीवर्ड वास्तव में तालिका में क्या लाता है।

  • घटनाक्रम एक इंटरफेस का हिस्सा हो सकता है, जबकि नियमित प्रतिनिधि क्षेत्र
  • घटनाक्रम के बाहर कक्षाएं, लेकिन नियमित रूप से प्रतिनिधियों ने लागू नहीं कर सकते नहीं कर सकते हो सकता है
  • घटनाक्रम है अतिरिक्त accessors (जोड़ सकते हैं और निकालने के लिए) है कि आप

संपादित करें: Here's a great writeup ईवेंट और प्रतिनिधियों के बीच आईएल कोड तुलना के साथ ओवरराइड और कस्टम कार्यक्षमता प्रदान कर सकते हैं। (संकेत: यह काफी समान है)।

+0

@womp आपके पहले बुलेट बिंदु के बारे में अंतर्दृष्टि लेख – TheVillageIdiot

+0

@womp के लिए धन्यवाद, 'एक्शन ' एक प्रतिनिधि नहीं है जो एक इंटरफ़ेस का हिस्सा हो सकता है? –

+0

@womp, आपके पहले बुलेट बिंदु के संबंध में, 'एक्शन ' एक प्रतिनिधि नहीं है जो इंटरफ़ेस का हिस्सा हो सकता है? 'सार्वजनिक इंटरफेस आईटीएस्ट { शून्य आपूर्तिकॉलबैक विधि (एक्शन कॉलबैक); } ' –