2012-08-05 14 views
16

मैं अक्का सीख रहा हूं और मैं यह समझने की कोशिश कर रहा हूं कि कलाकार एक-दूसरे से बात कैसे करें (चलो उन्हें A और B पर कॉल करें)। यह अनुरोध/प्रतिक्रिया परिदृश्य नहीं है, A और B किसी भी समय एक-दूसरे को संदेश भेज रहे हैं।अक्का अभिनेता फॉर बनाम एक अभिनेता आरफ

इस समय मुझे दो भाई अभिनेता मिल गए हैं जो दोनों दिशाओं में संदेशों को एक दूसरे के पास भेजते हैं। वे दोनों सीधे ActorSystem पर बनाए गए हैं। मैंने शुरुआत में AB के निर्माता में ActorRef पारित किया था। लेकिन मैं BA के निर्माता को पास नहीं कर सकता क्योंकि यह अभी तक मौजूद नहीं है, यानी मैं परिपत्र संदर्भों के लिए इस विधि का उपयोग नहीं कर सकता।

मैं actorFor पढ़ रहा हूं और इससे मुझे अपने पथ का उपयोग करके एक अभिनेता को देखने दिया जाएगा। हालांकि, मैं इस सेटअप के साथ सहज नहीं हूं, क्योंकि यदि पथ बदलता है, तो यह संकलक द्वारा पकड़ा नहीं जाएगा। यह माता पिता है, A और B से माता-पिता को संदेश पारित करने के लिए है और फिर माता-पिता वापस A और B करने के लिए नीचे संदेश देना है,

एक अन्य विकल्प, हर अभिनेता पर विचार पहुंच नहीं है। लेकिन यह माता-पिता को संदेश प्रकारों को आगे और आगे पारित करने के लिए जोड़ता है।

अभिनेताओं को एक दूसरे के बारे में जागरूक करने के लिए लोग क्या रणनीतियां उपयोग कर रहे हैं? क्या मैं पथ से अभिनेताओं को देखने के बारे में बहुत सतर्क हूं?

+0

क्या आपने अपने 'अभिनेता रिफ की तत्कालता करते समय' आलसी वाल 'का उपयोग करने का प्रयास किया है? मैं कल्पना कर सकता हूं कि यह परिपत्र निर्भरता को हल करने में मदद करेगा। मान लीजिए कि आप निश्चित रूप से स्कैला का उपयोग करते हैं ... – agilesteel

+0

मैंने अभी इसे दिया और यह काम करता है। मुझे पता नहीं था कि आप परिभाषित होने से पहले आलसी वैल का संदर्भ लें - पागल सामान! पारितोषिक के लिए धन्यवाद। मुझे अभी भी यह जानने में दिलचस्पी होगी कि लोग एक्टोररफ्स बनाम पथों को पार करने के बारे में कैसा महसूस करते हैं। – Geoff

+0

सुनिश्चित करें कि आपने http://doc.akka.io/docs/akka/2.0.2/general/addressing.html पढ़ लिया है। – sourcedelica

उत्तर

11

मेरी विनम्र राय में आप तीन रणनीतियों, जो मैं आपकी समस्या के करीब से सूची है (लेकिन यह भी मुझे सबसे खराब पैटर्न के लिए, मैं माफी चाहता हूँ)

रणनीति 1: आप अभिनेता एक और अभिनेता बी बनाते हैं, अभिनेता बी के निर्माता के लिए अभिनेता आरएफ ए पास करना आपका पिंग-पोंग अभिनेता बी से अभिनेता ए को एक संदेश भेजना शुरू कर देगा, और अभिनेता ए प्रेषक संदर्भ का उपयोग कर जवाब दे सकता है। (या अन्य चारों ओर रास्ता)


रणनीति 2: यह अभिनेता के निर्माण में नाम प्रदान करती है, जब क्वेरी करने के साथ ही: यदि आप अपने आवेदन में एक परत जो नामकरण का ख्याल रखता है बनाएँ। यह एक बिंदु में समस्या को केंद्रीकृत करता है।


रणनीति 3: आप आश्चर्य है कि अगर दो भाई-बहन पिंगपांग खेलने अभिनेताओं एक बेहतर, अधिक मॉड्यूलर अभिनेता पदानुक्रम जहां मूल रूप से प्रत्येक अभिनेता ने अपनी माता-पिता और उनके बच्चों के साथ ही संवाद और उनके भाई-बहन के बारे में कोई ज्ञान नहीं है की जगह नहीं कर रहे हैं।

+3

रणनीति 3 सबसे समझदार लगता है। मैं थोड़ा चिंतित था कि माता-पिता बहुत सारी तारों को खत्म करने जा रहे थे, लेकिन मुझे लगता है कि यह ठीक है क्योंकि यह अपने बच्चों को समन्वयित करने के लिए माता-पिता का काम है (इसके अलावा, केवल संदेशों को अग्रेषित करना ज्यादा काम नहीं है)। – Geoff

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