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 />

:<br />

غالبا ما نحتاج لبناء نموذج مختلف قليلا من صنف موجود<br />

مناهج جديدة أو خصائص أو تعديل أخرى موجودة<br />

نستطيع فعل ذلك بطريقتين<br />

له<br />

،<br />

.<br />

،<br />

،<br />

(<br />

ببساطة<br />

وبذلك ستضاعف شفرتك مرتين<br />

،<br />

بدلا من بناء صنف جديد من البداية ، ربما نحتاج إضافة<br />

نسخ الشفرة من هناك ولصقها هنا . ‏(يدل على ضعف خبرة ب<strong>البرمجة</strong> مالم توجد غاية مبررة<br />

ناهيك عن الأخطاء<br />

،<br />

،<br />

والغرق <strong>في</strong> تفصيلات تبعدك عن مشروعك الأساسي<br />

لا تكن من الذين يتبعون هذا النوع من الحلول كحلول أساسية . لماذا لا تقوم بدلا من ذلك بإستخدام إحدى<br />

أروع ميزات <strong>البرمجة</strong> <strong>الغرضية</strong><br />

:<br />

ألا وهي الوراثة<br />

وراثة صنف موجود عملية سهلة التحقيق بإستخدام دل<strong>في</strong><br />

تعريف الصنف الجديد<br />

. (inheritance)<br />

،<br />

.<br />

لاحظ أن شفرة مشروع جديد <strong>في</strong> دل<strong>في</strong> تحوي التعريف التالي<br />

عليك فقط أن تذكر إسم الصنف الموروث <strong>في</strong> ترويسة<br />

type<br />

TForm1 = class(TForm)<br />

end;<br />

:<br />

هذة هي الوراثة ياصديقي<br />

،<br />

التعريف السابق يدل على أن Tform1 يرث كل صفات الصنف Tform ‏،الحقول<br />

،<br />

الأحداث ،<br />

الوارث<br />

، كل شيء ..<br />

، Tform1<br />

المناهج<br />

تستطيع أن تستدعي أي منهج عام Public معرف <strong>في</strong> الصنف Tform من غرض من الصنف<br />

والذي بدورة ورث بعض الصفات من صنف أب له حتى نصل إلى الصنف السلف<br />

بإمكانك إضافة بياناتك الخاصة للصنف الجديد<br />

نفس الوحدة<br />

. Tobject<br />

،<br />

.<br />

أو تعديل البيانات الموروثة من الصنف الأب بإعادة تعريفها لكن <strong>في</strong><br />

مثلا إذا أردنا أن نبني صنف جديد مشتق من الصنف Tdate الذي سبق وبنيناه ، ونعدل <strong>في</strong> المنهج GetText الخاص بة<br />

type<br />

TNewDate = class (TDate)<br />

public<br />

function GetText: string;<br />

end;<br />

…<br />

function TNewDate.GetText: string;<br />

begin<br />

GetText := FormatDateTime ('dddddd', fDate);<br />

end;<br />

يك<strong>في</strong> إعادة تعريف المناهج الموجودة بنفس الإسم حتى نحصل على نسختنا الخاصة منها،‏ هذ العمل يوفر الجهد والتعب<br />

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

،<br />

.<br />

٣١

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

Saved successfully!

Ooh no, something went wrong!