Product Design, Manufacturing & Innovation Resources
بيت » تعدد الأشكال (البرمجة)

تعدد الأشكال (البرمجة)

1967
  • Christopher Strachey
مساحة عمل البرمجة الحاسوبية التي توضح تعدد الأشكال مع مقتطفات من التعليمات البرمجية.

(صورة تم إنشاؤها للتوضيح فقط)

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

Polymorphism is a powerful concept that allows for writing flexible and decoupled code. The most common form in OOP is subtype polymorphism, which is enabled by inheritance and method overriding. When a subclass provides a specific implementation for a method that is already defined in its superclass, it is called overriding. A variable of the superclass type can refer to an object of any of its subclasses. When a method is called on this variable, the version of the method that gets executed is the one belonging to the object’s actual class, not the variable’s type. This decision is made at runtime, a process known as dynamic dispatch or late binding.

على سبيل المثال، لنفترض وجود فئة أساسية باسم "Shape" تحتوي على دالة باسم "calculateArea()". يمكن للفئات الفرعية مثل "Circle" و"Rectangle" أن ترث من "Shape" وتوفر تطبيقاتها الخاصة للدالة "calculateArea()". بالتالي، يمكن للبرنامج أن يحتوي على قائمة من كائنات "Shape"، تتضمن مثيلات من "Circle" و"Rectangle". عند المرور على عناصر القائمة واستدعاء الدالة "calculateArea()" على كل عنصر، سيتم استخدام الصيغة الصحيحة لكل شكل تلقائيًا. يُغني هذا عن الحاجة إلى عبارات "if-else" أو "switch" المطولة للتحقق من نوع كل كائن، مما يؤدي إلى كود أكثر وضوحًا وقابلية للتوسيع. ويمكن إضافة أشكال جديدة إلى النظام دون تعديل الكود الذي يعالجها.

UNESCO Nomenclature: 1203
- علوم الحاسب الآلي

يكتب

النظام التجريدي

الاضطراب

تزايدي

الاستخدام

الاستخدام الواسع النطاق

السلائف

  • مفهوم مؤشرات الوظيفة في لغات مثل c
  • مفاهيم البرمجة العامة
  • الميراث، الذي يوفر التسلسل الهرمي للفئة اللازم لتعدد أشكال النوع الفرعي
  • الحاجة إلى أنظمة برمجية مرنة وقابلة للتوسع

التطبيقات

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

براءات الاختراع:

NA

أفكار ابتكارات محتملة

بسبب عمليات جمع البيانات من خلال برامج الروبوت، والتي تتجاوز حاليًا 40 ألفًا يوميًا، فإن هذا المحتوى مخصص لأعضاء المجتمع فقط.
> تسجيل الدخول < أو > سجل < (مجاني 100٪) للوصول إلى هذا، وكذلك جميع المحتويات والأدوات الأخرى المقيدة.

يتعلق بـ: تعدد الأشكال، التجاوز، الإرسال الديناميكي، الربط المتأخر، النوع الفرعي، الواجهة، التجريد، البرمجة الكائنية، تجاوز الأساليب، وقت التشغيل.

السياق التاريخي

تعدد الأشكال (البرمجة)

1956
1960
1967
1967
1970
1970
1970
1953
1960
1960
1967
1970
1970
1970
1970

(إذا كان التاريخ غير معروف أو غير ذي صلة، على سبيل المثال "ميكانيكا الموائع"، يتم توفير تقدير تقريبي لظهوره الملحوظ)

الاختراع والابتكار والمبادئ التقنية ذات الصلة

الصور بالحجم الكامل والتنزيلات متاحة فقط 100% مجاناً للأعضاء المسجلين.