ऑब्जर्वर डिजाइन पैटर्न बनाम "श्रोताओं"


136

यह मुझे लगता है कि GOF में वर्णित ऑब्ज़र्वर डिज़ाइन पैटर्न वास्तव में वही है जो श्रोताओं को विभिन्न टूलकिट में मिलते हैं। क्या अवधारणाओं के बीच अंतर है, या श्रोता और पर्यवेक्षक वास्तव में एक ही बात हैं।

(मैं किसी विशिष्ट कंप्यूटर भाषा के कार्यान्वयन की तलाश नहीं कर रहा हूं, मैं सिर्फ डिजाइन के दृष्टिकोण से अंतर (यदि कोई हो) को समझना चाहता हूं। हां, मुझे पता है कि एसओएफ पर इसी तरह के सवालों के कई जवाब हैं, लेकिन वे निहित हैं। विशिष्ट भाषाओं के बारे में विशिष्ट प्रश्नों में - मैं डिज़ाइन उत्तर की तलाश कर रहा हूँ, न कि भाषा उत्तर की।)


19
पूर्व में एक कोड आंदोलन के लिए दूसरा कोड देखता है, जबकि बाद में एक कोड किसी भी शोर के लिए दूसरे कोड को सुनता है।
nate c

2
GOF का क्या मतलब है?
डेकरू

5
@ डेरेक गैंग ऑफ़ फोर: en.wikipedia.org/wiki/Design_Patterns
बिट्सऑफ़्लॉजिक

जवाबों:


60

क्या "श्रोता" शब्द ऑब्जर्वर पैटर्न को संदर्भित करता है या नहीं यह संदर्भ पर निर्भर करेगा। उदाहरण के लिए, जावा स्विंग का "इवेंट श्रोताओं" एक ऑब्जर्वर पैटर्न कार्यान्वयन का हिस्सा है, जबकि .नेट "ट्रेस श्रोताओं" नहीं हैं।

किसी दिए गए पैटर्न कार्यान्वयन में भाग लेने वाले घटकों को अलग-अलग नामों को असाइन करना फ्रेमवर्क लेखकों के लिए असामान्य नहीं है, लेकिन आधिकारिक पैटर्न के नाम आमतौर पर पैटर्न पर चर्चा करते समय उपयोग किए जाते हैं।

डिजाइन के संबंध में, दिए गए पैटर्न के कार्यान्वयन अक्सर उपयोग की जाने वाली भाषा और मंच से प्रभावित होंगे। इस प्रकार, किसी दिए गए ढांचे के भीतर ऑब्जर्वर पैटर्न का एक विशेष कार्यान्वयन (जो कंक्रीटऑर्ब्जवर की भूमिका का वर्णन करने के लिए "श्रोता" शब्द का उपयोग करने के लिए हो सकता है) डिज़ाइन पैटर्न बुक में वर्णित से थोड़ा भिन्न हो सकता है।


26

गामा एट द्वारा डिजाइन पैटर्न में प्रेक्षक के वर्णन के लिए दो-तरफा प्रकृति है। अल। (GOF)।

ऑब्जर्वर के अपने विवरण में, एक कांक्रीटऑब्जर्वर इसके विषय में बदलाव का संकेत दे सकता है। सबजेक्ट, जो सभी कंकरीटऑब्जर्वर की सूची रखता है, फिर अपनी सूची को सूचित करता है। प्राइम मूवर सहित सभी कंकरीट ओब्सेर्वर, तब उचित प्रतिक्रिया करते हैं।

श्रोताओं के सामान्य कार्यान्वयन बाहर से होने वाली घटनाओं पर प्रतिक्रिया देते हैं।

तो, मैं कहूंगा कि श्रोता एक पर्यवेक्षक का कम सामान्यीकृत मामला है।


4

एक श्रोता अच्छी तरह से पर्यवेक्षक पैटर्न का कार्यान्वयन हो सकता है। एक श्रोता अनिवार्य रूप से किसी दिए गए ऑब्जेक्ट पर एक घटना होने की प्रतीक्षा कर रहा है, जो एक पर्यवेक्षक करता है।

मुझे पता है कि आप भाषा विशिष्ट उत्तर के बाद नहीं हैं, लेकिन सार में इस सामान के बारे में बात करना कठिन है। इसलिए अगर मैं .NET में इसकी जांच कर रहा हूं, तो मैं .NET रिफ्लेक्टर में एक श्रोता वाली असेंबली खोलने के लिए इच्छुक हूं, जो मुझे असेंबली को अलग करने और एक डिज़ाइन पैटर्न के खिलाफ इसके तर्क की जांच करने की अनुमति देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.