البرمجة الغرضية التوجه في دلفي
البرمجة الغرضية التوجه في دلفي
البرمجة الغرضية التوجه في دلفي
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 />
لنوضح هذة النقطة الهامة<br />
<strong>في</strong> مثال التاريخ السابق<br />
:<br />
،<br />
لو كنا نتبع الطريقة الكلاسيكية ب<strong>البرمجة</strong> فإن المتحولات (البيانات) ستكون متاحة للدخول والتغيير المباشر<br />
وبالتالي من الممكن إدخال قيم غير صالحة بدون وجود إمكانية للتأكد منها<br />
(٣٠ February 30 شباط) والذي هو تاريخ خاطيء لإن شباط لايحوي ٣٠ يوم<br />
،<br />
،<br />
مثلا لو قمت بإدخال التاريخ<br />
فإن البرنامج سيقبلة لإننا عرفنا<br />
متحول اليوم من النوع الصحيح (Integer) الذي يقبل هذة القيمة ، وستحصل الأخطاء لاحقا عند العمليات<br />
، الحسابية<br />
أو تعطي نتائج خاطئة تماما<br />
أما <strong>في</strong> حال <strong>البرمجة</strong> <strong>الغرضية</strong><br />
.<br />
،<br />
فإن الدخول المباشر للبيانات غير مسموح لإن البيانات مغلفة (مخبأة ( <strong>في</strong> الصنف<br />
والوصول إليها يتم بإستخدام المناهج التي خصصها الصنف<br />
ستتعامل مع إجرائية أو تابع لإدخال القيمة<br />
لذلك ،<br />
،<br />
يمكن بسهولة تضمينها شفرات لفحص القيم والتأكد منها<br />
،<br />
.<br />
أي أنك لن تستخدم المتحول مباشرة بل<br />
وبالتالي لن يظهر معنا النوع السابق من الأخطاء لإن هذة المناهج<br />
ورفض التعديلات <strong>في</strong> حال كانت القيمة غير صالحة<br />
لاحظ أننا أستخدمنا المنهج SetValue لضبط القيم ولم نقم بالضبط المباشر وهنا نستطيع إضافة الشفرة<br />
الخاصة بالتحقق من صلاحية القيمة<br />
،<br />
كأن تكون أصغر من حد معين<br />
... أو أو ، أو غير سالبة ،<br />
-<br />
-<br />
كما أن للتغليف ميزة سحرية للمبرمج نفسه هذة المرة<br />
..<br />
•<br />
لإا تسمح لة بتغيير التركيب الداخلي للصنف <strong>في</strong> التحديثات المستقبلية<br />
الأغراض التي إستخدمت هذا الصنف بإقل عناء ممكن<br />
،<br />
،<br />
وبالتالي ستطبق التغييرات تلقائيا على بقية<br />
دون الحاجة لتغير شفرتنا <strong>في</strong> مناطق مختلفة من البرنامج<br />
.<br />
: ملاحظة<br />
بالإضافة إلى التغليف المعتمد-على–الصنف فإن دل<strong>في</strong> تدعم التغليف المعتمد-على-الوحدة<br />
،<br />
بحيث كل متغير تقوم<br />
بتعريفة <strong>في</strong> قسم ال Interface للوحدة سيصبح مرئيا لباقي وحدات البرنامج عند إستخدامها <strong>في</strong> التعريف<br />
حين أن المتغيرات المعرفة <strong>في</strong> قسم ال Implementation هي متغيرات محلية لهذة الوحدة فقط .<br />
Uses <strong>في</strong><br />
١٠