एक आदेश और बस संचार में एक घटना के बीच का अंतर मुझे थोड़ा अस्पष्ट लगता है। मुझे पता है कि आदेशों को केवल एक बार निष्पादित किया जाना चाहिए, जबकि एक घटना को कई बार नियंत्रित किया जा सकता है, लेकिन फिर भी मुझे यकीन नहीं है कि कमांड या किसी घटना का उपयोग कब करना है।
आइए एक उदाहरण देखें:
जब कोई नया उपयोगकर्ता किसी वेब एप्लिकेशन पर पंजीकरण करता है, तो हमें उसे एक खाता बनाना चाहिए और एक पुष्टिकरण ईमेल भेजना चाहिए।
खाता बनाना - यह CreateUserCommand
बस को भेजने और एक विशेष घटक को संभालने के लिए सही जगह है।
या शायद यह भी एक अतुल्यकालिक बस संचार के साथ लागू नहीं किया जाना चाहिए? हम चाहते हैं कि उपयोगकर्ता अभी तुरंत एप्लिकेशन में लॉग इन कर सके। बस के साथ हमें कोई गारंटी नहीं है कि कमांड कब निष्पादित की जाएगी।
ईमेल भेजना - घटक बनाने के बाद खाता मैं 2 संभावनाएं देख सकता हूं
- बस में एक और कमांड भेजें
SendConfirmationEmailCommand
- एक घटना प्रकाशित करें
UserAccountCreatedEvent
और ईमेल भेजने वाले घटक को इसे हड़पने और काम करने देने की तुलना में।
एक तरफ मैं चाहता हूं कि पुष्टिकरण ईमेल केवल एक बार भेजा जाए (एक कमांड का उपयोग करें), दूसरी ओर, मेरा मानना है कि नए पंजीकृत उपयोगकर्ताओं में रुचि रखने वाले कई घटक हो सकते हैं। एक लकड़हारा या शायद एक एसएमएस भेजने वाला।
आप इसे कैसे लागू करेंगे?