2012-03-20 13 views
7

मैं अक्का और अभिनेता-पैटर्न के लिए नया हूं, इसलिए मुझे यकीन नहीं है कि यह मेरी आवश्यकताओं के अनुरूप है या नहीं।सिमुलेशन के लिए अक्का

मैं अक्का और लाखों इकाइयों के साथ सिमुलेशन बनाना चाहता हूं (डोमेन ऑब्जेक्ट्स के रूप में सोचें - बाद में अभिनेता) जो एक-दूसरे को प्रभावित कर सकते हैं। तो एक कम या कम "अस्पष्ट" परिणाम के साथ सिमुलेशन के रूप में सोचते हुए, हमारे पास इकाइयों के साथ एक सरणी है, जहां इन इकाइयों में से प्रत्येक की गति तेज है, लेकिन वास्तविक इकाई के सामने इकाइयों द्वारा विफल हो जाती है। जब सिमुलेशन शुरू होता है, तो प्रत्येक इकाई को एन-फ़ील्ड ले जाना चाहिए, या, अगर दूसरों द्वारा कम किया जाता है, तो कम फ़ील्ड। हमारे पास कई पुनरावृत्तियों हैं, और अंत में हमारे पास एक नया आदेश है। यह कुछ दौरों के लिए दोहराया जाता है जब तक कि हम प्रमुख संस्थाओं का "स्नैपशॉट" नहीं देखना चाहते हैं (जिसे अगले दौर शुरू होने से पहले संभवतः हटा दिया जाता है)।

तो मुझे समझ नहीं आता कि अगर मैं अक्का के साथ इस बना सकते हैं, क्योंकि:

यह प्रत्येक अभिनेता की स्थिति के साथ वैश्विक सूची करना संभव है, ताकि वे जान सकें जो की स्थिति में वे कर रहे हैं और जो कर रहे हैं उनके सामने? जहां तक ​​मैं समझता हूं, यह अभिनेताओं के encapsulation का उल्लंघन करता है। मैं अभिनेता की स्थिति अभिनेता की स्थिति में रख सकता हूं, लेकिन मैं इस अभिनेता के आसपास अभिनेताओं को कैसे देख सकता/सकती हूं? इसके अलावा, वैश्विक सूची सिंक्रनाइज़ेशन समस्याओं का निर्माण करेगी और प्रदर्शन को प्रभावित करेगी, जो वांछित व्यवहार (और अक्का/अभिनेता-पैटर्न के पूरक है)

मुझे क्या याद आया? क्या मुझे एक और डिजाइन दृष्टिकोण खोजना है? सुझावों के लिए धन्यवाद।

अद्यतन: इवेंटबस और क्लासिफायर के साथ काम करना भी एक विकल्प नहीं लगता है। documentation की चर्चा करते हुए:

"इसलिए यह जिन मामलों में सदस्यता के बहुत उच्च आवृत्ति के साथ बदलने के उपयोग करने के लिए अच्छी तरह से अनुकूल नहीं है"

उत्तर

2

अभिनेता मॉडल अपने परिदृश्य के लिए एक बहुत अच्छा फिट है। अभिनेता संदेश भेजकर संवाद करते हैं, इसलिए प्रत्येक अभिनेता अपने पड़ोसियों को अपनी स्थिति वाले संदेश भेज सकता है। बेशक, प्रत्येक अभिनेता सिस्टम में हर दूसरे अभिनेता के बारे में नहीं जानता (वैसे भी कुशलतापूर्वक नहीं) इसलिए आपको एक योजना भी तैयार करनी होगी, हालांकि प्रत्येक अभिनेता को पता है जो उनके पड़ोसियों हैं।

सिस्टम का स्नैपशॉट प्राप्त करने के लिए, बस एक केंद्रीय अभिनेता है जो सभी के द्वारा जाना जाता है और सभी को जानता है।

ऐसा लगता है कि आप अभी अभिनेताओं के साथ शुरुआत कर रहे हैं। थोड़ी और पढ़ें - अक्का साइट एक अच्छा संसाधन है - और यदि आवश्यक हो तो वापस आएं और अपने प्रश्न को परिष्कृत करें।

आपकी समस्या n-body simulation जैसी चीज की तरह लगता है, इसलिए इसमें भी मदद मिल सकती है।

+0

हमने हमारी समस्या के लिए एक अलग समाधान का उपयोग करने का निर्णय लिया। हालांकि मुझे लगता है कि आपका सुझाया गया पैटर्न वादा करता है। एन-बॉडी संदर्भ के लिए भी धन्यवाद। – Dag

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