26.04.2015 Views

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>البرمجة</strong> <strong>الغرضية</strong> <strong>التوجه</strong> <strong>في</strong> دل<strong>في</strong><br />

عروة عيسى<br />

المناهج الإفتراضية مقابل الديناميكية<br />

نستطيع <strong>في</strong> دل<strong>في</strong> تفعيل التحديد المتأخر بطريقتين<br />

كمنهج ديناميكي<br />

:<br />

Virtual versus Dynamic Methods<br />

.<br />

إما تعريف المنهج كمنهج إفتراضي كما رأينا سابقا<br />

،<br />

.<br />

إستخدامهما هي نفسها أيضا<br />

العبارة النحوية للكلمتان المفتاحيتان<br />

(virtual ) و (dynamic)<br />

، هي نفسها تماما<br />

،<br />

ونتيجة<br />

أو تعريفة<br />

والإختلاف بينهما فقط هو الآلية الداخلية التي يتبعها المترجم لتن<strong>في</strong>ذ التحديد المتأخر<br />

المناهج الإفتراضية تعتمد على جدول المناهج الإفتراضية VMT أو(‏table (virtual method<br />

المناهج <strong>في</strong> الذاكرة<br />

.<br />

،<br />

،<br />

السجل n لجدول المناهج الإفتراضية<br />

،<br />

والذي يخزن ضمنة عناوين<br />

ويسمى أحيانا ، Vtable حيث سيقوم المترجم بتوليد شفرة القفز إلى عنوان الذاكرة المخزن <strong>في</strong><br />

تسمح جداول المناهج الإفتراضية بتن<strong>في</strong>ذ سريع للإستدعاء<br />

،<br />

.<br />

ولكنها تتطلب مدخلا<br />

خاصا من أجل كل منهج إفتراضي لكل صنف مشتق ، حتى لو لم يكن المنهج مهيمنا (overridden) <strong>في</strong> الصنف المورث<br />

إستدعاءات المناهج الديناميكية بالمقابل تنجز بإستخدام رقم فريد يحدد المنهج<br />

كان معرفا <strong>في</strong>ة أصلا أو كان منهجا مهيمنا<br />

،<br />

،<br />

ويكون مخزنا <strong>في</strong> الصنف فقط <strong>في</strong> حال<br />

البحث عن المنهج المطابق يكون عادة أبطأ من البحث بخطوة واحدة <strong>في</strong><br />

جدول المناهج الإفتراضية السابق ، والميزة الأساسية له أن المناهج الديناميكية تولد <strong>في</strong> الأصناف المشتقه فقط عندما يكون<br />

منهج الصنف المشتق مهيمنا<br />

.<br />

فكرة : المناهج المتأخرة التحديد يمكن أن تستخدم لمعالجة رسائل ويندوز<br />

لمبرمجي ويندوز الذين يملكون الخبرة الكاملة برسائل ويندوز وتوابع<br />

،<br />

.<br />

API<br />

وهذة التقنية يمكن أن تكون م<strong>في</strong>دة جدا<br />

: ملاحظة<br />

كذلك تستخدم الكلمة المفتاحية<br />

Abstract<br />

والفرق بينها وبين المناهج الإفتراضية أنه يجب تعريفها <strong>في</strong> كل الأصناف المشتقة<br />

للتصريح عن مناهج ستعرف فقط <strong>في</strong> الأصناف المشتقة من الصنف الحالي<br />

،<br />

.<br />

المنهج الإفتراضي Voice فإن أي صنف مشتق منه يمكنة أن يعرف منهج Voice خاص به<br />

Voice كمنهج مستخلص<br />

مثلا إذا كان الصنف<br />

Tanimal يملك<br />

،<br />

(Abstract)<br />

فإنة يتوجب على كل صنف مشتق إعادة تعريفه<br />

.<br />

أما إذا كان يملك المنهج<br />

٣٩

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!