التركيب أم الوراثة
فضّل التركيب لمشاركة السلوك
التركيب أم الوراثة درس مجاني في Angular Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Angular Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Angular Academy 4 دروس في المجموع.
استراتيجيتان لإعادة الاستخدام
لمشاركة السلوك بين المكونات، يمكنكم استخدام الوراثة (توسيع فئة أساسية) أو التركيب (دمج أجزاء أصغر). تجعل واجهة برمجة التركيب في Angular التركيب هو الخيار الافتراضي المفضل.
مراجعة الوراثة
في الوراثة، يوسّع المكون مكونًا أساسيًا أو توجيهًا أساسيًا، ويعيد استخدام مدخلاته ومخرجاته ومنطقه.
export class FancyButton extends BaseButton {
// inherits BaseButton members
}قيود الوراثة
يمكن للفئة أن توسّع أساسًا واحدًا فقط. تصبح التسلسلات الهرمية العميقة جامدة، كما ترثون كل شيء، حتى الأجزاء التي لا تريدونها.
مشكلة الماسة
لا يمكن دمج سلوكيات متعددة عبر الوراثة من دون سلاسل معقدة وغير ملائمة. يتجنب التركيب ذلك بتطبيق توجيهات متعددة بصورة مستقلة.
مراجعة التركيب
مع التركيب، يظل المكون مركزًا ويستقدم السلوكيات عبر hostDirectives، ويمزج العدد الذي يحتاج إليه منها.
hostDirectives: [ElevateDirective, RippleDirective, FocusTrapDirective]تفضيل التركيب
تنطبق التوجيهات "فضّلوا التركيب على الوراثة" بقوة في Angular: فالتركيب مرن وتراكمي، ويتجنب الفئات الأساسية الهشة.
متى تظل الوراثة مناسبة
قد تكون الوراثة مناسبة لأساس واحد مستقر تشترك فيه تنويعات متقاربة، مثل حقل نموذج أساسي تتخصص فيه التنويعات. حافظوا على سطحية التسلسلات الهرمية.
الجمع بين الطريقتين
يمكنكم الجمع بين الأسلوبين: وسّعوا أساسًا رفيعًا للبنية المشتركة، مع تركيب السلوكيات للجوانب المشتركة بين المكونات.
التغليف
يحافظ التركيب على خصوصية الأجزاء الداخلية لكل سلوك، ولا يتيح سوى المدخلات والمخرجات المختارة، بينما تكشف الوراثة واجهة برمجة الأساس بالكامل.
إعادة الهيكلة باتجاه التركيب
عندما تتراكم مسؤوليات غير مرتبطة في فئة أساسية، افصلوا كل مسؤولية في توجيه وركّبوا هذه التوجيهات. ستكون النتيجة أكثر نمطية وأسهل اختبارًا.
دليل اتخاذ القرار
هل تحتاجون إلى سلوكيات مستقلة متعددة؟ استخدموا التركيب. هل تحتاجون إلى أساس بنيوي مشترك واحد؟ قد يكون الأساس السطحي مناسبًا. اجعلوا التركيب هو الخيار الافتراضي لتحقيق المرونة.
اختبار سريع
اختبروا فهمكم للتركيب في مقابل الوراثة.
خلاصة
تعلمتم أن التركيب (دمج السلوكيات المركزة عبر hostDirectives) أكثر مرونة من الوراثة (استخدام فئة أساسية واحدة)، ويتجنب التسلسلات الهرمية الهشة، ولذلك ينبغي أن يكون الخيار الافتراضي، مع حصر الوراثة السطحية في البنية المشتركة.
الأسئلة الشائعة
هل درس «التركيب أم الوراثة» مجاني؟
نعم — نص درس «التركيب أم الوراثة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Angular Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Angular Academy 4 دروس في المجموع.
ماذا ستتعلم في «التركيب أم الوراثة»؟
فضّل التركيب لمشاركة السلوك تتمرن على Angular Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Angular Academy؟
لا تُشترط خبرة سابقة. Angular Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التركيب أم الوراثة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Angular Academy هذا؟
نعم. كل درس في Angular Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.