البرمجة الغرضية التوجه في دلفي
البرمجة الغرضية التوجه في دلفي
البرمجة الغرضية التوجه في دلفي
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>البرمجة</strong> <strong>الغرضية</strong> <strong>التوجه</strong> <strong>في</strong> دل<strong>في</strong><br />
عروة عيسى<br />
ملاحظة : <strong>في</strong> المثال السابق نضع تعريف TnewDate ضمن نفس الوحدة التي عرفنا ا Tdate لإن المنهج<br />
يستخدم المتحول الخاصfDate المعرف ك<br />
ولتوضيح ذلك أكثر دعنا ننتقل للفقرة التالية<br />
GetText<br />
Private ضمن<br />
Tdate ولايمكن الوصول إلية من خارج الوحدة<br />
.<br />
:<br />
التغليف والحقول المحمية<br />
: Protected Fields and Encapsulation<br />
كما لاحظت أن شفرة المنهج GetText الخاصة بالصنف TnewDate ستترجم بلا أخطاء فقط إن تمت إضافتها <strong>في</strong> نفس<br />
وحدة الصنف الأساس<br />
. Tdate<br />
لإا كما وضحنا تحاول دخول المتحول fDate والذي هو متحول موضعي<br />
، Private<br />
إذا أردنا أن نضع الصنف المشتق <strong>في</strong> وحدة جديدة بدون أن نجعل المتحول fDate متحول عام Public يمكن الوصول إلية<br />
، من أي مكان<br />
فإننا سنجد طريقتين تحققان ذلك<br />
تعريف المتحول fDate كمتحول محمي أي<br />
(Protected)<br />
هذا النوع يسمح فقط للأصناف المشتقة من الصنف الأساسي بالدخول للبيانات<br />
ترك المتحول Private وإضافة منهج محمي Protected يؤمن الوصول لة<br />
.<br />
.<br />
بدلا من المتحول العام أو المحلي ، إذا كنت تتذكر إن<br />
-<br />
-<br />
ربما لاحظت معي أن الطريقة الأولى هي الأفضل لإا أكثر عمومية عندما نورث الصنف لعدد كبير من الأصناف<br />
الفرعية ، وأنصحك بإتباعها دائما ، حتى لو لم تجد حاجة حاليا لتعريف معطيات محمية قم بذلك من أجل توريث<br />
أصناف جديدة مستقبلا<br />
،<br />
البيانات المحمية تجعل الصنف قابل للوصول بشكل مناسب لتقنية الوراثة<br />
.<br />
ربما تقول إن ذلك خروج عن قاعدة التغليف الكامل <strong>في</strong> <strong>البرمجة</strong> <strong>الغرضية</strong> (التي تقول بيانات محلية مناهج عامة) ، الجواب<br />
نعم إلى حد ما ، ولذلك علينا أن نكون منتبهين أننا لن نحصل على كامل ميزات التغليف مالم نتبعة بشكل جيد<br />
لاحظ مثلا <strong>في</strong> حالة قمنا بتوريث عشرات الأصناف من صنف ما<br />
الصنف ربما يضطرنا لتغير مايقابلها <strong>في</strong> كل من الأصناف المشتقة<br />
،<br />
،<br />
.<br />
إن تغيير البيانات المحمية Protected <strong>في</strong> هذا<br />
بكلمة أخرى المرونة<br />
، التغليف ، قابلية التوسع ،<br />
عندما يحصل ذلك عليك أن تفضيل التغليف من بينها<br />
غالبا ما تكون أهداف متنازعة<br />
،<br />
ومن الصعب تحقيقها جميعا<br />
،<br />
.<br />
إذا كان من الممكن تحقيق ذلك بدون التضحية بالمرونة فإن<br />
٣٢