ياسر القيسي
ياسر القيسي

@yasalqaisi

15 Tweets 966 reads Mar 10, 2020
اذا كنت مبرمج تطبيقات عن طريق Flutter ، أو تستخدم لغة دارت كــ Back-end هذا الثريد بيوضح لك بشكل مبسط مع الأمثلة أنواع ال constructors في لغة الـ Dart
@PrograminLovers
#حزب_المبرمجين #برمجة
قبل ما نبدأ ، إذا كنت مهتم بالبرمجة وخصوصًا flutter و dart وبرمجة تطبيقات الهاتف ونصائح برمجية لا تنسى تعمل متابعة للحساب والمحتوى اللي فيها 💙
في البداية لازم نعرف ماهو الـ Constructor
في البرمجة الشيئية، هو عبارة عن دالة مخصصة لتجهيز object جديد من الـ Class
وغالبًا ما تحتوي على parameters تقوم بتعريف وتهيئة متغيرات الكلاس
في الغالب يكون للــ Constructor نفس إسم الكلاس ومهمته الأساسية تجنب عمل object جديد من الكلاس ببيانات خاطئة أو حصول خطأ في الكود البرمجي
يعني بإختصار هو عبارة عن دالة تقوم بتجهيز الObject للإستخدام وضمان عدم حصول أخطاء
ملاحظة: لغة dart لا تدعم الــ Function overloading لذلك لا يمكننا عمل أكثر من constructor بنفس الاسم
1⃣ Named Constructors
إذا كنا في حاجة لإستخدام أكثر من constructor يمكن إستخدام ما يسمى بال named constructors وتكون بهذه الصيغة
ClassName.constructorName
ولهذه الطريقة ميزيتين
🔵 تجنب مشكلة عدم توفر الfunction overloading
🔵 بوجود التسميه، يمكنك معرفة فائدة وهدف الConstructor بدون الحاجة للرجوع للكلاس في كل مرة للتأكد منه
2⃣ Factory Constructors
ميزة هذا النوع من ال Constructors انه ما يعمل Object جديد عن إستدعاءه ولكن يقوم بتوفير الموارد واستخدام object قديم
غالبًا يتم إستخدامه في الــ Singleton ولكن هذا موضوع لثريد اخر إن شاء الله،
يمكن إستخدامه أيضًا عند عمل Object جديد من بيانات ال Json كما في المثال التالي
3⃣ Const Constructors
حتى لو قمت بتعريف عنصرين من نفس الكلاس بإستخدام نفس المتغيرات، سيكون كل منهم عبارة عن Object مختلف في الذاكرة
عن طريق تعريف ال constructor كنوع ثابت أو const سيمكنك عمل نفس الـ Object في كل مرة إذا كانت قيم المتغيرات فيه متساوية، اما إذا تغيرت القيمة فسيتم إنشاء Object جديد في الذاكرة
لاحظ أنه لابد أن يبدأ تعريف الـ object بــ const وليس new
4⃣ Private Constructors
النوع الأخير اللي بتكلم عنه هو ال private constructors
ويمكن عملها عن طريق إستعمال ال _ قبل إسم الconstructor
مثلا
Tweet._();
ويستخدم لمنع الوصول للــ default constructor وكمان في ال singletons وكمثال سريع شوفوا الصورة 😊
وبكذا نضمن إنه دائما بيكون معانا وصول لنفس الـ Object في كل البرنامج ويكون عندنا نسخة واحدة منه
وبالنسبة لي النوع اللي إستخدمه بكثرة في برمجة الدارت هو الـ Factory بالذات عشان التفاهم مع الــ APIs وعمل كلاسات لتسهيل التعامل مع البيانات
وبكذا نكون وصلنا لنهاية حديثنا عن الــ Constructors في لغة Dart
أتمنى للجميع تكويدًا ممتعًا 💙

Loading suggestions...