استخدام Polymorphism بدل if المتعددة

x32x01
  • بواسطة x32x01 ||

ليه الـ Polymorphism هو الحل بدل كود الـ if الطويل؟​


عزيزي الجونيور أو حتى السينيور..
أكبر غلطة ممكن تعملها في حق نفسك وفي حق المشروع بتاعك إنك تستخدم أكتر من شرط if جوه الفانكشن زي المثال المشهور ده 👇

يعني مثلًا عندك فانكشن بتحسب السعر بناءً على نوع الاشتراك (Subscription Type).
هل منطقي كل نوع اشتراك تقعد تضيف له if statement جديدة؟ 😅
أكيد لأ!

فهنا ييجي الحل السحري: Polymorphism 🧠

إيه هو الـ Polymorphism؟​

هو مفهوم أساسي في البرمجة الكائنية (OOP) بيسمح إن الكائنات (objects) من فئات مختلفة تتعامل بنفس الطريقة.
الميزة؟ الكود يبقى:
✅ أكتر مرونة
✅ أسهل في التعديل
✅ قابل للصيانة والتوسع

الشرح ببساطة​

الفكرة إنك بتعمل interface أو abstract class فيها دوال معينة - وليكن calculate().
بعد كده كل نوع اشتراك بيبقى له class خاص بيه بينفذ الدالة دي بطريقة مختلفة.

يعني بدل ما تكتب كود كبييير كله if، هتخلي كل نوع اشتراك هو اللي يعرف يحسب بنفسه 👇

JavaScript:
// واجهة لتحديد طريقة الحساب
interface PriceCalculator {
calculate();
}

// كلاس لكل نوع اشتراك
class BasicCalculator implements PriceCalculator {
calculate() {
return 100;
}
}

class PremiumCalculator implements PriceCalculator {
calculate() {
return 200;
}
}

// استخدام الكلاسات
function getPrice(calculator) {
return calculator.calculate();
}

console.log(getPrice(new BasicCalculator())); // 100
console.log(getPrice(new PremiumCalculator())); // 200

الفايدة الحقيقية من Polymorphism​

لما تستخدم الطريقة دي بدل if statements:
  • الكود هيبقى أقل تعقيدًا
  • أسهل في الفهم والتطوير
  • أكثر مرونة لما تضيف أنواع جديدة من الاشتراكات
وبكده تكون استخدمت مفهوم Polymorphism بطريقة ذكية 💡
وخليت كودك نظيف واحترافي 👏
أيه هو الـ Polymorphism وأكبر خطأ ممكن يحصل فى مشروعك

أيه هو الـ Polymorphism وأكبر خطأ ممكن يحصل فى مشروعك

أيه هو الـ Polymorphism وأكبر خطأ ممكن يحصل فى مشروعك

أيه هو الـ Polymorphism وأكبر خطأ ممكن يحصل فى مشروعك
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
309
x32x01
x32x01
x32x01
الردود
0
المشاهدات
387
x32x01
x32x01
x32x01
الردود
0
المشاهدات
386
x32x01
x32x01
x32x01
الردود
0
المشاهدات
217
x32x01
x32x01
x32x01
الردود
0
المشاهدات
425
x32x01
x32x01
الوسوم : الوسوم
abstract class clean code design patterns interface javascript oop polymorphism refactoring software architecture solid principles
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,320
المشاركات
2,533
أعضاء أكتب كود
567
أخر عضو
Mohaned
عودة
أعلى