में मैन्युअल रूप से अभिनेता पदानुक्रम बनाने के लिए मेरे आवेदन को अभिनेताओं की वृक्ष संरचना बनाने में सक्षम होना चाहिए। ऐसा करने का मानक तरीका मुझे लगता है कि अभिनेताओं के अंदर तात्कालिकता कोड डालना होगा ताकि वे अपने बच्चों को तुरंत चालू कर सकें। दृष्टिकोण मैं एक दिए गए पथ पर एक अभिनेता को तुरंत चालू करने में सक्षम होना होगा। जैसे कि मेरे सिस्टम में अभिनेता ए बनाते हैं और फिर सीधे एक्क्का बनाने में सक्षम होते हैं: // mySystem/A/B और अन्य कलाकार। क्या ऐसी कार्यक्षमता मौजूद है? यह मेरे कोड को काफी सरल बना देगा।अक्का
संपादित करें: अब जब मैं अपने फोन पर नहीं हूं, तो मुझे विस्तृत करें।
कहते हैं कि मैं एक वर्ग
class myActor extends actor
है और मैं इनमें से एक n रास्ता पेड़ बनाने की जरूरत है। इसके बजाय
case Create(n:Int) => {}
की तरह कुछ के साथ प्राप्त समारोह में अपने बच्चों का दृष्टांत को मैं उस के किसी भी शामिल नहीं द्वारा myActor कोड सरल करने के लिए देख रहा हूँ के लिए आवश्यक कोड होने और इसके बजाय शुरू में मेरी पदानुक्रम बनाने के लिए सक्षम होने का मैन्युअल रूप से मेरे कोड का। तो आदर्श रूप कुछ इस तरह (यह मानते हुए काल्पनिक स्थिर समारोह "बनाने के"):
val sys = ActorSystem("mySystem")
Akka.Actors.Create("akka://mySystem/a", new myActor())
Akka.Actors.Create("akka://mySystem/a/b", new myActor())
Akka.Actors.Create("akka://mySystem/a/c", new myActor())
जो अभिनेता पेड़ बन जाएगा:
a
/\
b c
अब, यह मौजूद है? क्या तत्काल कोड के साथ मेरे अभिनेता कोड को छेड़छाड़ किए बिना ऐसा करने का कोई बेहतर तरीका है?
संपादित करें, गोल 2:
ठीक है, इस कार्यक्षमता की तरह अस्तित्व में नहीं है लग रहा है। मैंने इसके बजाय अभिनेता का उप-गुण बनाया और वहां मेरे सभी तत्काल कोड को मजबूर कर दिया ताकि मेरा ठोस कार्यान्वयन वर्ग अभी भी साफ हो।
मुझे लगता है कि सैद्धांतिक रूप से यह एक अच्छा जवाब है, हालांकि मैं मदद नहीं कर सकता लेकिन ध्यान दें कि बड़े अभिनेता सिस्टम पदानुक्रमों से कितना स्पेगेटी कोड परिणाम। प्रश्न में उल्लिखित एक केंद्रीय विन्यास व्यावहारिक सॉफ्टवेयर उद्देश्यों के लिए समग्र पदानुक्रम की स्पष्ट समझ के लिए एक तंत्र प्रदान कर सकता है। क्या आप जटिल पदानुक्रमों को स्पष्ट करने के लिए कुछ वैकल्पिक विधि की सिफारिश करेंगे? या यह सिर्फ माता-पिता के अभिनेता संबंधों को कैसे दिया जाना चाहिए? –
मेरे लिए इसका उत्तर देना मुश्किल है क्योंकि ऐसा लगता है कि मेरे पास ऐसा संदर्भ नहीं है जो मेरे पास नहीं है। अभिनेता प्रणालियों को कुछ कार्यक्षमता प्रदान करने वाले उपट्री में संरचित होते हैं, इस अर्थ में वे बहुत मॉड्यूलर होते हैं। इन सबोडोड्यूल में से प्रत्येक के लिए प्रवेश बिंदु इसका शीर्ष अभिनेता है, जो प्रभावी रूप से इसकी पूरी उप-धारा है। मैं देख सकता हूं कि बाहर से उपट्री के भीतर अभिनेताओं को स्थापित करने की कोशिश करके इस मॉडल को तोड़ने से स्पेगेटी कोड उत्पन्न होगा, क्योंकि यह बस करने के लिए नहीं है। जब भी एक अभिनेता को बच्चा बनाने की ज़रूरत होती है, तो उदाहरण के लिए यह कॉन्फ़िगरेशन को देख सकता है कि यह कैसे किया जाए। –