ConstructiCat Logo
CodeBust.
Browse section ▾

جعل التابع يقبل معاملات (Parameterize Method).

Problem

Multiple methods perform similar actions that are different only in their internal values, numbers or operations.

Solution

اجمع هذه التوابع معاً باستخدام معامل يمرر القيمة الخاصة المطلوبة.

##Example

قبل
Parameterize Method - Before
بعد
Parameterize Method - After

##Why Refactor

إذا كان لديك توابع متشابهة، فمن المحتمل أن يكون لديك كود مكرر، بكل ما يترتب على ذلك من عواقب.

علاوة على ذلك، إذا كنت بحاجة إلى إضافة نسخة أخرى من هذه الوظيفة، فستضطر إلى إنشاء تابع آخر. بدلاً من ذلك، يمكنك ببساطة تشغيل التابع الحالي بمعامل مختلف.

##How to Refactor

  1. أنشئ تابعاً جديداً يقبل معاملاً وانقله إلى الكود المشترك لجميع الفئات عن طريق تطبيق استخراج التابع (Extract Method). لاحظ أنه في بعض الأحيان يكون جزء معين فقط من التوابع متطابقاً بالفعل. في هذه الحالة، تتم إعادة الهيكلة عن طريق استخراج الجزء المتطابق فقط إلى تابع جديد.

  2. في كود التابع الجديد، استبدل القيمة الخاصة/المختلفة بالمعامل.

  3. لكل تابع قديم، ابحث عن الأماكن التي يتم استدعاؤه فيها، واستبدل هذه الاستدعاءات باستدعاءات للتابع الجديد مع تمرير المعامل المناسب. ثم احذف التابع القديم.