2011-11-15 16 views
24

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

उत्तर

16

UntypedActor बस अभिनेता के लिए लेकिन जावा एपीआई के रूप में नाम है।

मैं बहुत हैरान है कि प्रलेखन पर्याप्त नहीं है कर रहा हूँ:

जावा:

स्काला:

अंतर TypedActors एक स्थिर इंटरफ़ेस है कि है, और संदेश भेजता है कि इंटरफेस पर तरीकों में से आमंत्रण तब्दील हो जाता है। UntypedActors कोई संदेश प्राप्त कर सकते हैं।

उम्मीद है कि मदद करता है।

चीयर्स, √

+0

आम तौर पर टाइप किए गए लोगों पर अवांछित अभिनेता का उपयोग क्यों करना पसंद करते हैं? टाइप किए गए लोग कोड को और अधिक पठनीय बनाते हैं - कम 'exampleof'/'case' - शामिल है। अधिक वस्तु उन्मुख की तरह। जावा और स्कैला भाषाएं जैसे अधिक टाइप किए गए हैं। – ses

+0

मेरी राय: अवांछित अभिनेता का उपयोग करके आपको अभिनेता द्वारा संदेश फ़िल्टर करना होगा। टाइप किए गए अभिनेता का उपयोग करके आपको केवल सटीक संदेश के लिए जोड़ना होगा। – alerya

+0

टाइप किए गए कलाकार उच्च-युग्मन को प्रेरित करते हैं और वे बनने/असहमत होने की अनुमति नहीं देते हैं (जो अभिनेताओं के अंदर राज्य के साथ काम करने के लिए मूल और शुद्ध कार्यात्मक तरीका है), अधिक जानकारी - http://letitcrash.com/post/19074284309/when-to प्रयोग-typedactors – dk14

4
Actors (Untyped) 

संदेशों को प्राप्त करने के लिए कलाकारों (स्कैला) के लिए, उन्हें उपभोक्ता विशेषता को मिश्रित करना होगा। उदाहरण के लिए, निम्न अभिनेता वर्ग (उपभोक्ता 1) फ़ाइल से संदेशों को प्राप्त करने के लिए एंडपॉइंट यूरी विधि लागू करता है, जिसे उपभोक्ता विशेषता में घोषित किया जाता है: डेटा/इनपुट/अभिनेता कैमल एंडपॉइंट। अनियमित अभिनेताओं (जावा) को अमूर्त UntypedConsumerActor क्लास का विस्तार करने और getEndpointUri() और ऑनसेसिव (ऑब्जेक्ट) विधियों को लागू करने की आवश्यकता है।

Actors (Typed) 

टाइप किए गए कलाकार भी ऊंट अंतराल से संदेश प्राप्त कर सकते हैं। (Untyped) कलाकारों के विपरीत, जो केवल एक ही प्राप्त या ऑनसीस विधि को लागू करते हैं, एक टाइप किया गया अभिनेता कई (संदेश प्रसंस्करण) विधियों को परिभाषित कर सकता है, जिनमें से प्रत्येक एक अलग ऊंट अंतराल से संदेश प्राप्त कर सकता है। एक टाइप किए गए अभिनेता विधि के लिए ऊंट अंतराल के रूप में उजागर होने के लिए इसे @ कॉन्स्यूम एनोटेशन के साथ एनोटेट किया जाना चाहिए। उदाहरण के लिए, निम्नलिखित टाइप किए गए उपभोक्ता अभिनेता दो विधियों, foo और bar को परिभाषित करता है।

Reference

+0

मिथुन, उपभोक्ता विशेषता Mixin के लिए संदेश प्राप्त करने की आवश्यकता होगी, अभिनेताओं के बारे में हिस्सा है के बारे में * कैमल * संदेशों, है ना? किसी भी अक्का अभिनेता को उपभोक्ता के साथ या उसके बिना सामान्य अक्का संदेश प्राप्त हो सकते हैं। – AmigoNico

+0

@AmigoNico: ठीक है !! –

1

untyped अभिनेताओं, भेजे गए संदेश का जवाब है, जबकि टाइप किए हुए अभिनेताओं विधि कॉल (पैरामीटर मान गए संदेशों कर रहे हैं) के लिए प्रतिक्रिया।

टाइप किए गए अभिनेता मॉडल का उपयोग ऐसे कलाकारों के लिए सख्त अनुबंध परिभाषित करने के लिए किया जाता है जो केवल पूर्वनिर्धारित संदेशों के सेट का जवाब दे सकें। इस मामले में, प्रत्येक संदेश को एक वस्तु के रूप में encapsulated की आवश्यकता नहीं है; टाइप किए गए कलाकार हमें अलग-अलग तरीकों को परिभाषित करने की अनुमति देते हैं जो अनुबंध द्वारा परिभाषित कई इनपुट स्वीकार करते हैं। जावा पैरालांस में, टाइप किए गए कलाकार वस्तु-उन्मुख दुनिया में जावा इंटरफ़ेस प्रदान करते हैं। [1]

[1] Akka Essentials

0

अक्का untyped अभिनेता "रचना नहीं है" और "उपयोगी टाइप नहीं कर रहे हैं"।

यह स्कैला का उपयोग करने के कारणों को हरा देता है: यह कार्यात्मक प्रोग्रामिंग शक्ति है। इस मानसिकता पर गहराई से http://noelwelsh.com/programming/2013/03/04/why-i-dont-like-akka-actors/ देखें।

इसके अलावा, हास्केल मार्ग से मेल खाने के लिए स्कैला में इसे सुधारने के प्रयास देखें। स्पष्ट नहीं -

http://letitcrash.com/post/40198993865/makkros-first-step-towards-typed-channels http://letitcrash.com/post/45188487245/the-second-step-akka-typed-channels

अभी भी अक्का में या यहाँ तक कि प्रयोगात्मक होने के लिए गिरा दिया लगता है।

टाइप किए गए चैनलों का यह विचार बहुत समझ में आता है क्योंकि जब कोई व्यक्ति टाइप किए गए डेटा (एनालिटिक्स) पाइपलाइनों को बनाने का प्रयास करता है तो समान समस्याएं होती हैं।

अक्का Typed एक सुरक्षित प्रोग्रामिंग मॉडल के लिए एक महान विकास हो रहा है: https://opencredo.com/akka-typed/

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