2014-10-19 10 views
7

मैं दोनों का अध्ययन कर रहा हूं लेकिन कोई वास्तविक अंतर नहीं मिला, क्या मुझे कुछ याद आ रहा है? वेब पर कुछ लोग कहते हैं कि पर्यवेक्षक को केवल एक घटना को संभालना चाहिए जबकि रिएक्टर कई - लेकिन मैं इसे एक वास्तविक अंतर नहीं मानता क्योंकि एक रिएक्टर कई पर्यवेक्षक की तरह देखा जा सकता है। क्या कोई अंतर है या नया नाम रिएक्टर पर्यवेक्षक की तुलना में बस अधिक अच्छा है?ऑब्जर्वर पैटर्न बनाम रिएक्टर पैटर्न

धन्यवाद, कार्लो

+2

मैं कई तरीकों से सहमत हूं प्रतिक्रियाशील पैटर्न – kenny

उत्तर

7

Reactor Pattern एक मध्यस्थ सेवा हैंडलर जो सही हैंडलर के लिए अनुरोध और डिस्पैच demultiplexes इस्तेमाल करता है।

Observer Pattern की आवश्यकता है कि "पर्यवेक्षक" विषय के साथ पंजीकरण करें, जो तब होता है जब कोई ईवेंट होता है तो सभी पंजीकृत पर्यवेक्षकों को नोटिफिकेशन देता है।

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

प्रैक्टिस में, ऑब्जर्वर पैटर्न गतिशील रूप से पंजीकरण और उपभोक्ताओं को पंजीकरण में अधिक लचीलापन प्रदान कर सकता है। बहुत अधिक समवर्ती अनुप्रयोगों में यह थ्रुपुट को बाधित करने वाला एक इंटरमीडिएट डिस्पैचर नहीं होने का लाभ भी प्रदान करता है। Lapsed Listener Problem भी प्रासंगिक है, जो तब होता है जब उपभोक्ता इस विषय के साथ पंजीकरण रद्द करना भूल जाते हैं जब वे अब अधिसूचित नहीं होना चाहते हैं। कचरे में एकत्रित भाषाओं में, यह अक्सर जीसी को इन घटना हैंडलरों को इकट्ठा करने में सक्षम होने से रोकता है और इस प्रकार उन्हें रिसाव करता है और उनके पास कोई भी संदर्भ है। यह आमतौर पर रिएक्टर पैटर्न के साथ संभव नहीं है, जो आमतौर पर गतिशील पंजीकरण का उपयोग नहीं करता है (हालांकि यह सैद्धांतिक रूप से हो सकता है)।

+1

रिएक्टर एक समस्या हल करता है जो ** सर्वर ** के लिए बहुत विशिष्ट है: "सर्वर अनुप्रयोग को प्रत्येक आने वाले अनुरोध को इसके संबंधित सेवा प्रदाता को डिमल्टीप्लेक्स और प्रेषित करना होगा।" पर्यवेक्षक अपने पर्यवेक्षकों से विषयों को कम करने के लिए एक और सामान्य पैटर्न है। – Fuhrmanator

संबंधित मुद्दे