استخدام 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
المشاهدات
796
x32x01
x32x01
x32x01
الردود
0
المشاهدات
195
x32x01
x32x01
x32x01
الردود
0
المشاهدات
45
x32x01
x32x01
x32x01
الردود
1
المشاهدات
471
x32x01
x32x01
x32x01
الردود
0
المشاهدات
635
x32x01
x32x01
x32x01
الردود
0
المشاهدات
648
x32x01
x32x01
x32x01
الردود
0
المشاهدات
636
x32x01
x32x01
x32x01
الردود
0
المشاهدات
73
x32x01
x32x01
x32x01
الردود
0
المشاهدات
77
x32x01
x32x01
x32x01
الردود
0
المشاهدات
790
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,827
المشاركات
2,025
أعضاء أكتب كود
470
أخر عضو
ejpt
عودة
أعلى