एक में घटना चालित वास्तुकला प्रत्येक घटक केवल कार्य करता है एक घटना प्रणाली के माध्यम से भेजा जाता है जब।
ब्रेक पेडल और ब्रेक लाइट के साथ काल्पनिक कार की कल्पना करें।
- ब्रेक लाइट बदल जाता है पर जब यह एक प्राप्त करता है brake_on घटना, और बंद जब यह एक प्राप्त करता है brake_off घटना।
- ब्रेक पेडल एक ब्रेक_न घटना भेजता है जब इसे दबाया जाता है, और एक ब्रेक_ऑफ घटना जब इसे जारी किया जाता है।
यह सब ठीक है और अच्छा है, जब तक आपके पास स्थिति नहीं है जहां कार को चालू किया जाता है ब्रेक पेडल के साथ पहले से ही नीचे दबाया जाता है । चूंकि ब्रेक लाइट को कभी ब्रेक_ऑन इवेंट नहीं मिला , इसलिए यह बंद रहेगा - स्पष्ट रूप से एक अवांछनीय स्थिति। डिफ़ॉल्ट रूप से ब्रेक लाइट चालू करने से स्थिति उलट हो जाती है।
इस problem प्रारंभिक राज्य समस्या ’को हल करने के लिए क्या किया जा सकता है?
संपादित करें: सभी प्रतिक्रियाओं के लिए धन्यवाद। मेरा सवाल एक वास्तविक कार के बारे में नहीं था। कारों में उन्होंने राज्य को लगातार भेजकर इस समस्या को हल किया - इसलिए उस डोमेन में कोई स्टार्टअप समस्या नहीं है। मेरे सॉफ़्टवेयर डोमेन में, वह समाधान कई अनावश्यक सीपीयू चक्रों का उपयोग करेगा ।
EDIT 2: @ gbjbaanb के उत्तर के अलावा , मैं एक ऐसी प्रणाली के लिए जा रहा हूँ जिसमें:
- प्रारंभिक ब्रेक पेडल, आरंभीकरण के बाद, अपने राज्य के साथ एक घटना भेजता है, और
- प्रारंभिक ब्रेक लाइट, आरंभीकरण के बाद, ब्रेक पेडल से एक राज्य घटना का अनुरोध करते हुए एक घटना भेजता है।
इस समाधान के साथ, घटकों के बीच कोई निर्भरता नहीं है, कोई दौड़ की स्थिति नहीं है, बासी जाने के लिए कोई संदेश कतार नहीं है, और कोई 'मास्टर' घटक नहीं हैं।
initialize
) जिसमें आवश्यक सेंसर डेटा शामिल है।