
- بواسطة 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:- الكود هيبقى أقل تعقيدًا
- أسهل في الفهم والتطوير
- أكثر مرونة لما تضيف أنواع جديدة من الاشتراكات

وخليت كودك نظيف واحترافي

التعديل الأخير: