إضافة معامل.
لا تمتلك الدالة البيانات الكافية لتنفيذ إجراءات معينة.
قم بإنشاء معامل جديد لتمرير البيانات اللازمة.
##مثال
void charge() {
bank.transfer(amount);
}void charge(Date asOf) {
bank.transfer(amount, asOf);
}##لماذا نعيد الهيكلة
تحتاج إلى إجراء تغييرات على دالة وتتطلب هذه التغييرات إضافة معلومات أو بيانات لم تكن متاحة سابقاً للدالة.
البديل هو إضافة حقل خاص جديد يحتوي على البيانات التي تحتاجها الدالة. يُفضَّل المعامل عندما تكون البيانات مطلوبة بشكل عرضي أو تتغير باستمرار، فلا داعي للاحتفاظ بها في الكائن طوال الوقت. خلاف ذلك، أضف حقلاً خاصاً واملأه بالبيانات اللازمة قبل استدعاء الدالة.
##الفوائد
-
تتلقى الدالة البيانات التي تحتاجها صراحةً من الكود المستدعي: تظهر هذه التبعية في توقيع الدالة بدلاً من أن تكون مخفية في حالة الكائن.
-
لا حاجة إلى تخزين البيانات العرضية أو المتغيرة باستمرار في الكائن طوال الوقت، فلا تتراكم في الفئة حقول لا تلزم إلا لاستدعاء واحد.
##كيفية إعادة الهيكلة
-
تحقق مما إذا كانت الدالة معرفة في فئة عليا (superclass) أو فئة فرعية (subclass). إذا كانت الدالة موجودة فيهما، فستحتاج إلى تكرار جميع الخطوات في هذه الفئات أيضاً.
-
الخطوة التالية بالغة الأهمية للحفاظ على عمل البرنامج أثناء عملية إعادة الهيكلة. قم بإنشاء دالة جديدة عن طريق نسخ القديمة وإضافة المعامل اللازم إليها. استبدل كود الدالة القديمة باستدعاء للدالة الجديدة. يمكنك تمرير أي قيمة للمعامل الجديد (مثل
nullللكائنات أو صفر للأرقام). -
ابحث عن جميع الإشارات (references) إلى الدالة القديمة واستبدلها بإشارات إلى الدالة الجديدة.
-
احذف الدالة القديمة. لن يكون الحذف ممكناً إذا كانت الدالة القديمة جزءاً من الواجهة العامة (public interface). إذا كان الأمر كذلك، فقم بتمييز الدالة القديمة على أنها مهملة (deprecated).