إضافة المعاملات (Add Parameter)

من موسوعة حسوب

المشكلة

لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات.

الحل

إنشاء معامل جديد لتمرير البيانات الضرورية.

مثال

قبل إعادة التصميم

لا يملك التابع ()getContact في الصنف Customer لجدولة موعدٍ للتواصل مع الزبون:

لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات.
لا يملك التابع بيانات كافية لتنفيذ بعض الإجراءات.

بعد إعادة التصميم

أصبح بالإمكان تمرير تاريخ إلى التابع ()getContact لتصبح بيانات جدولة تاريخ مناسب مع الزبون مكتملة:

إنشاء معامل جديد لتمرير البيانات الضرورية.
إنشاء معامل جديد لتمرير البيانات الضرورية.

لم إعادة التصميم؟

تحتاج إلى إجراء بعض تغييرات على أحد التوابع، وتتطلب هذه التغييرات إضافة معلومات أو بيانات لم تكن متاحة من قبل لهذا التابع.

فوائد تطبيق الحل

  • يكون الخيار في هذه الحالة إمَّا إضافة معامل جديد وإمَّا إضافة حقل خاص جديد يحتوي على البيانات التي يحتاجها التابع. ويفضل إضافة حقل عند الحاجة إلى بعض البيانات العرضية أو المتغيرة بشكل متكرر والتي لا يوجد جدوى من الاحتفاظ بها في كائن طوال الوقت. في هذه الحالة، سيكون المعامل الجديد أكثر مناسبةً من حقلٍ خاص وستؤتي إعادة التصميم ثمارها. وإلا يُضاف حقلٌ خاص ويُملأ بالبيانات الضرورية قبل استدعاء التابع.

مساوئ تطبيق الحل

  • دائمًا ما تكون إضافة معامل جديد أسهل من إزالته، ولهذا السبب تتضخم قوائم المعاملات في كثير من الأحيان إلى أحجام مهولة. ويُعرف هذا الاختلال باسم قائمة المعاملات الطويلة.
  • إذا كنت بحاجة إلى إضافة معامل جديد، يعني هذا في بعض الأحيان أن صنفك لا يحتوي على البيانات اللازمة أو أن المعاملات الموجودة لا تحتوي على البيانات الضرورية ذات الصلة. في كلتا الحالتين، فإنَّ الحل الأفضل هو النظر في نقل البيانات إلى الصنف الرئيسي أو إلى أصناف أخرى يمكن الوصول إلى كائناتها بالفعل من داخل التابع.

آلية الحل

  1. تحقق من إذا كان التابع مُعرَّف في الصنف الأعلى أو صنفٍ فرعي. فإذا كان التابع موجودًا فيهما، سوف تحتاج إلى تكرار جميع الخطوات على هذه الأصناف أيضا.
  2. الخطوة التالية مهمة للحفاظ على عمل برنامجك أثناء عملية إعادة التصميم. أنشئ تابعًا جديدًا عن طريق نسخ التابع القديم وإضافة المعامل الضروري إليه. ثم استبدل الشيفرة البرمجية للتابع القديم باستدعاءٍ للتابع الجديد. ويمكنك التعويض بأي قيمة في المعامل الجديد (مثل null للكائنات أو صفر للأرقام).
  3. ابحث عن كافة المراجع إلى التابع القديم واستبدلها بمراجع إلى التابع الجديد.
  4. احذف التابع القديم. الحذف غير ممكن إذا كان التابع القديم هو جزء من الواجهة العامة. إذا كان كذلك، ضع علامة "مُهمَل" (deprecated) على التابع القديم.

انظر أيضًا

مصادر