الدرس 10: الأحداث ونمط Observer
بدون الأحداث، يجب على الصنف الذي يريد إشعار الآخرين أن يعرف كل واحد منهم — وكل مستمع جديد يجبرك على فتحه وتعديله من جديد. في هذا الدرس ستتعلم كيف يعكس `event` و`+=` في C# الاتجاه: الأطراف المهتمة تشترك بنفسها، والصنف الناشر لا يعرف أياً منهم.
الحدث يشبه قائمة توزيع بريدية لصحيفة: الصحيفة لا تعرف أياً من قرائها شخصياً، ومع ذلك يحصل كل من اشترك على العدد لحظة صدوره.
- الحدث ونمط Observer
- آلية يُطلِق فيها صنف ناشر حدثاً، ويتلقى المشتركون المسجّلون بـ += إشعاراً — دون أن يعرفهم الناشر.
- الاشتراك في الحدث (+=)
- += يضيف مُعالِجاً إلى قائمة مشتركي الحدث، و-= يزيله. الإسناد المباشر بـ = ممنوع خارج الصنف الناشر.
- EventHandler (delegate)
- نوع المفوّض (delegate) الذي يحدد توقيع كل مشترك في الحدث — على سبيل المثال EventHandler<string> يأخذ مُرسِلاً وسلسلة نصية.