ما هي الوظيفة الافتراضية البحتة؟

تقريبًا جميع أنواع البرمجة الموجهة للكائنات (OOP) ، التي تنشئ برامج وتفصل أقسام الكود إلى “كائنات” ، لها وظيفة تسمى الوظيفة الافتراضية البحتة ، والتي تختلف عن الوظيفة الافتراضية. تُعرف أيضًا باسم وظيفة مجردة ، تعمل الوظيفة الافتراضية البحتة كعنصر نائب للمتغيرات الأخرى وتأخذ المعلومات من الوظائف والفئات الأخرى لملء الفراغات. تتمثل ميزة استخدام وظيفة افتراضية خالصة في أن المعلومات قابلة للطرق ويمكن تغييرها وفقًا لكل مستخدم. للعمل ، يجب أن يكون هناك فئة مشتقة يتم الحصول على البيانات منها.

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

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

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

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