events - Is there a Dependency Injection-like pattern for wiring together Subjects and Observers? -


विषय पर्यवेक्षक संबंध निर्भरता संबंध नहीं है: पर्यवेक्षक की आवश्यकता विषय नहीं आदेश मौजूद है, और इसके विपरीत। फिर भी प्रकाशकों और ग्राहकों की "एक साथ मिलकर" निर्भरता इंजेक्शन की याद दिलाता है।

मेरा शूट-अप-अप गेम प्रेक्षक पैटर्न का व्यापक उपयोग करता है I उदाहरण के लिए:

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

अब, एचयूडी को जहाज़ की स्थिति, खासकर रिएक्टर तापमान के बारे में पता होना चाहिए, लेकिन एचयूडी जहाज पर निर्भर नहीं करता है डि अर्थ: जहाज नष्ट होने के बाद एचएडी बनी रहती है।

सवाल यह है कि नियंत्रक के पास एचयूडी के संदर्भ में नहीं है, मैं जहाज के संपर्क में एचयूडी कैसे प्राप्त कर सकता हूं? और यह सिर्फ एक नन्हा, छोटे उदाहरण है मेरे पास बहुत से ऑब्जेक्ट हैं और बहुत से ऑब्जेक्ट्स को एक-दूसरे को इवेंट्स पास करने की आवश्यकता होगी।

मुझे लगता है कि मैं कारखाने में कुछ तारों को कर सकता हूं, लेकिन यह "गलत" लगता है, और मदद नहीं करता उन स्थितियों में जहां मौजूदा सदस्यता को बदलने की जरूरत है।

फिर भी, मैंने जो कुछ मैंने पर्यवेक्षक पैटर्न के बारे में पढ़ा है, वह इस व्यापक समस्या को अनदेखा करता है। क्या एक स्थापित समाधान है?

आप कुछ सामान्य प्रयोजनों का उपयोग करके एक "ईवेंट एग्रीगेटर" "या एक सेंट्रल मैसेजिंग / इवेंट को ऐसा करने के लिए तंत्र को अपव्यय करना। इस तरह से आपका एचयूडी केवल उस प्रकार के इवेंट प्रकार की सदस्यता ले सकता है, जो आपके बारे में परवाह करता है, आपके जहाज़ आवश्यक रूप से उन घटनाओं को बढ़ा सकते हैं / भेज सकते हैं, और न ही दूसरे के बारे में जानने की जरूरत है।

आपके लिए एक अच्छा सब-इन-लिंक नहीं मिला, लेकिन यहां इस विचार की चर्चा है क्योंकि यह एक विनम्र आवेदन से संबंधित है:


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -