الفئات والطرق المجردة في TypeScript

في TypeScript، تُعد الفئة المجردة h2 نوعًا خاصًا من الفئات التي لا يمكن إنشاؤها بشكل مباشر. وهي بمثابة نموذج أولي للفئات الأخرى. تُستخدم الفئات المجردة لتحديد السلوكيات المشتركة التي يمكن مشاركتها بين فئات فرعية متعددة، مع السماح لتلك الفئات الفرعية بتوفير تنفيذات محددة.

تعريف فئة مجردة في TypeScript

يتم إعلان الفئة المجردة باستخدام الكلمة الأساسية abstract. ويمكن أن تحتوي على كل من الطرق المجردة، التي ليس لها تنفيذ ويجب تنفيذها بواسطة فئات فرعية، والطرق العادية، التي لها تنفيذ. فيما يلي مثال للفئة المجردة:

abstract class Animal {
  abstract makeSound(): void; // Abstract method, no implementation

  move(): void {
    console.log("Moving...");
  }
}

فهم الأساليب المجردة

الأساليب المجردة هي أساليب معلنة داخل فئة مجردة ليس لها تنفيذ في الفئة الأساسية. يجب تنفيذ هذه الأساليب في أي فئة فرعية ترث من الفئة المجردة. تضمن الأساليب المجردة أن كل فئة فرعية توفر سلوكها الخاص للطريقة. فيما يلي مثال:

class Dog extends Animal {
  makeSound(): void {
    console.log("Woof! Woof!");
  }
}

const myDog = new Dog();
myDog.makeSound(); // Outputs: Woof! Woof!
myDog.move(); // Outputs: Moving...

فوائد استخدام الفئات المجردة

تقدم الفصول المجردة العديد من المزايا:

  • إمكانية إعادة استخدام الكود: يمكن تعريف الأساليب والخصائص المشتركة مرة واحدة ومشاركتها عبر فئات فرعية متعددة.
  • التغليف: يمكن للفئات المجردة تغليف السلوك الذي يجب إخفاؤه عن الكود الخارجي.
  • تعدد الأشكال: تعمل الفئات المجردة على تمكين السلوك المتعدد الأشكال، مما يسمح لوظيفة واحدة بالتعامل مع أنواع مختلفة من الكائنات.

متى نستخدم الفئات المجردة؟

تُعد الفئات المجردة مثالية عندما تكون هناك حاجة إلى تعريف واجهة مشتركة لمجموعة من الفئات ذات الصلة مع السماح بالمرونة في كيفية تنفيذ هذه الفئات للواجهة. على سبيل المثال، في مشروع يتضمن أنواعًا مختلفة من الحيوانات، يمكن استخدام فئة مجردة Animal لتحديد البنية والسلوك المشتركين بين جميع الحيوانات، مع السماح لكل فئة حيوان محددة بتنفيذ سلوكياتها الفريدة.

الفئات المجردة مقابل الواجهات

في حين أن الفئات المجردة والواجهات تحدد العقود التي يجب أن تتبعها الفئات الأخرى، إلا أن هناك اختلافات رئيسية:

  • الفئات المجردة: يمكن أن تحتوي على طرق مجردة وطرق ملموسة (طرق ذات تنفيذات). وهي أكثر ملاءمة للمواقف التي تشترك فيها الفئات الفرعية في قدر كبير من التعليمات البرمجية.
  • Interfaces: تعلن فقط عن تواقيع الطريقة ولا تقدم أي تنفيذ. وهي مثالية لتحديد عقد يمكن لفئات متعددة تنفيذه بطرقها الخاصة.

خاتمة

توفر الفئات والأساليب المجردة في TypeScript آلية قوية لتحديد السلوك المشترك مع السماح بالمرونة في التنفيذ. باستخدام الفئات المجردة، يمكن للمطورين إنشاء قاعدة بيانات قوية وقابلة للصيانة تعزز إعادة استخدام التعليمات البرمجية والتغليف والتعدد الأشكال. إن معرفة متى تستخدم الفئات المجردة مقابل الواجهات أمر بالغ الأهمية لبناء تطبيقات قابلة للتطوير ومنظمة بشكل جيد.