Dibo
17.8K subscribers
956 photos
64 videos
17 files
739 links
هنساعدك تلاقي شغل وتتعلم وتكتسب خبرة ببلاش

بابا البرمجة
linkedin.com/in/dibo
Download Telegram
ال 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 #برمجة
❤1👍1