معدّلات base وinterface وfinal
التحكم في كيفية توسيع الآخرين لفئاتكم
معدّلات base وinterface وfinal درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
معدِّلات الأصناف
أضاف Dart 3 معدِّلات تتحكم في كيفية إعادة استخدام الآخرين لصنفكم. وتتيح لمؤلف المكتبة وضع حدود واضحة وملزمة.
المعدِّل base
يمكن توسيع الصنف base، لكن لا يمكن تطبيقه. وهذا يضمن أن كل نوع فرعي يرث تطبيقكم الفعلي.
base class Animal {
void breathe() {}
}لماذا نستخدم base
باستخدام base، تعرفون أن جميع الأنواع الفرعية تشترك في كودكم الفعلي، ولذلك تظل الأعضاء الخاصة والثوابت المنطقية موثوقة عبر التسلسل الهرمي.
المعدِّل interface
يمكن تطبيق الصنف interface، لكن لا يمكن توسيعه من خارج مكتبته. فالآخرون يلتزمون بالبنية، لا بكودكم.
interface class Logger {
void log(String m) {}
}لماذا نستخدم interface
يُعدّ المعدِّل interface مثاليًا للعقود. إذ يطبّق المستدعون توقيعات أساليبكم، بينما تحتفظون بالتطبيق داخليًا.
class FileLogger implements Logger {
void log(String m) {}
}المعدِّل final
لا يمكن توسيع الصنف final أو تطبيقه خارج مكتبته بأي شكل. ويكون النوع مقيدًا بالكامل.
final class Money {}لماذا نستخدم final
علّموا الصنف بأنه final عندما يجب ألّا يغيّر الآخرون سلوكه مطلقًا. وهكذا تظلون أحرارًا في تطويره دون التسبب في كسر الأصناف الفرعية.
ينتقل base إلى الأسفل
إذا وسّعتم صنفًا من نوع base، فيجب أن يكون صنفكم الفرعي أيضًا base أو final أو sealed. وينتقل هذا القيد إلى أسفل السلسلة.
base class Cat extends Animal {}دمج المعدِّلات
يمكنكم الجمع بين كلمات مثل base mixin أو sealed مع غيرها لضبط قواعد إعادة الاستخدام بدقة. ويعبّر كل تركيب عن نية محددة.
base mixin Swimmer {
void swim() {}
}حرية داخل المكتبة نفسها
تنطبق هذه القيود فقط خارج المكتبة المُعلِنة. أما داخل حزمتكم، فيمكنكم التوسيع والتطبيق كما تشاؤون.
اختيار المعدِّل المناسب
اختاروا interface للعقود، وbase للكود المشترك، وfinal للقفل الكامل. واختاروا القاعدة الأقل تقييدًا ما دامت آمنة. 🧭
تحقق سريع
تحقق سريع من معدِّلات الأصناف.
مراجعة
تعلّمتم أن base يفرض التوريث، وأن interface يفرض التطبيق، وأن final يمنع كليهما، مما يمنحكم التحكم في إعادة الاستخدام. 🔐
الأسئلة الشائعة
هل درس «معدّلات base وinterface وfinal» مجاني؟
نعم — نص درس «معدّلات base وinterface وfinal» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «معدّلات base وinterface وfinal»؟
التحكم في كيفية توسيع الآخرين لفئاتكم تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «معدّلات base وinterface وfinal»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الحقول النهائية وعدم القابلية العميقة للتغيير
- فئات sealed وعبارة switch الشاملة
- معدّلات base وinterface وfinal
- copyWith والمساواة حسب القيمة