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