ال Signals في علم الكمبيوتر هي طريقة للتواصل بين ال objects وبعضها بحيث تحقق observe pattern
واللي بيحصل باختصار ان في signal بيتبعت عند حدوث event معين، بيستقبله ال slots لتنفيذ مهام معينة ردا علي الحدث
ال #observe_pattern بيكون فيه object اسمه subject له قائمة من ال dependants اسمهم observers
بحيث لما ال state بتاعته تتغير ينبه ال observers
ابسط مثال علي كدة لما تخلي مجموعة handlers او event listeners يعملوا listen للاحداث اللي بيطلقها object معين
wikipedia.org/wiki/Observer_pattern
wikipedia.org/wiki/Signals_and_slots
في طرق اخري لتحقيق اهداف مشابهة زي مثلا استخدام callbacks بس في نظام observer pattern نقدر نخلي ال Subject يتواصل مع اكتر من observer في نفس الوقت
نظام callbacks فيه مشكلتين اساسيتين:
- مش آمن: ممكن الفنكشن تنده ال callbacks ب arguments غلط
مثلا لو cb بيقبل parameters معينة، مفيش ضمان انه يتنفذ بال arguments الصحيحة
- ال cb مرتبط ارتباط وثيق بالفنكشن الاصلية، لان الفنكشن لازم تكون عارفة هي هتنادي مين
بعكس نظام observer pattern، ال Subject بيطلق الاحداث بغض النظر عن مين اللي هينفذها
نظام signals/slots تم ابتكاره بواسطة Qt (بيتنطق cute) ودة نظام cross-platform (زي flatter كدة) بقاله اكتر من 20 سنة ومكتوب ب c++ وبيدعم ال desktop apps علي اي نظام تشغبل ومؤخرا بأة بيدعم الموبايل كمان، وحاليا باة بيستخدم web assembly عشان يدعم الويب
qt.io
ودة مقال لطيف بيقارن بين Qt و flutter و React native
scythe-studio.com/en/blog/flutter-vs-react-native-vs-qt-in-2022
تفاصيل اكتر عن نظام signals/slots من ال documentations بتاعة Qt
doc.qt.io/archives/qt-4.8/signalsandslots.html
#programming #برمجة
واللي بيحصل باختصار ان في signal بيتبعت عند حدوث event معين، بيستقبله ال slots لتنفيذ مهام معينة ردا علي الحدث
ال #observe_pattern بيكون فيه object اسمه subject له قائمة من ال dependants اسمهم observers
بحيث لما ال state بتاعته تتغير ينبه ال observers
ابسط مثال علي كدة لما تخلي مجموعة handlers او event listeners يعملوا listen للاحداث اللي بيطلقها object معين
wikipedia.org/wiki/Observer_pattern
wikipedia.org/wiki/Signals_and_slots
في طرق اخري لتحقيق اهداف مشابهة زي مثلا استخدام callbacks بس في نظام observer pattern نقدر نخلي ال Subject يتواصل مع اكتر من observer في نفس الوقت
نظام callbacks فيه مشكلتين اساسيتين:
- مش آمن: ممكن الفنكشن تنده ال callbacks ب arguments غلط
مثلا لو cb بيقبل parameters معينة، مفيش ضمان انه يتنفذ بال arguments الصحيحة
- ال cb مرتبط ارتباط وثيق بالفنكشن الاصلية، لان الفنكشن لازم تكون عارفة هي هتنادي مين
بعكس نظام observer pattern، ال Subject بيطلق الاحداث بغض النظر عن مين اللي هينفذها
نظام signals/slots تم ابتكاره بواسطة Qt (بيتنطق cute) ودة نظام cross-platform (زي flatter كدة) بقاله اكتر من 20 سنة ومكتوب ب c++ وبيدعم ال desktop apps علي اي نظام تشغبل ومؤخرا بأة بيدعم الموبايل كمان، وحاليا باة بيستخدم web assembly عشان يدعم الويب
qt.io
ودة مقال لطيف بيقارن بين Qt و flutter و React native
scythe-studio.com/en/blog/flutter-vs-react-native-vs-qt-in-2022
تفاصيل اكتر عن نظام signals/slots من ال documentations بتاعة Qt
doc.qt.io/archives/qt-4.8/signalsandslots.html
#programming #برمجة
❤1👍1