شعار ConstructiCat
CodeBust.
تصفح القسم ▾

تضمين التابع (Inline Method).

المشكلة

عندما يكون متن التابع أكثر وضوحاً من التابع نفسه، استخدم هذه التقنية.

الحل

استبدل استدعاءات التابع بمحتوى التابع واحذف التابع نفسه.

##مثال

قبل
class PizzaDelivery {
  // ...
  int getRating() {
    return moreThanFiveLateDeliveries() ? 2 : 1;
  }
  boolean moreThanFiveLateDeliveries() {
    return numberOfLateDeliveries > 5;
  }
}
بعد
class PizzaDelivery {
  // ...
  int getRating() {
    return numberOfLateDeliveries > 5 ? 2 : 1;
  }
}

##لماذا نعيد الهيكلة

يقوم التابع ببساطة بتفويض العمل لتابع آخر. في حد ذاته، لا يمثل هذا التفويض أي مشكلة. ولكن عندما يكون هناك العديد من هذه التوابع، فإنها تصبح تشابكاً محيراً يصعب تتبعه وفهمه.

غالباً لا تكون التوابع قصيرة جداً في البداية، ولكنها تصبح كذلك مع إجراء التعديلات على البرنامج. لذلك لا تتردد في التخلص من التوابع التي انتهت فائدتها.

##الفوائد

  • من خلال تقليل عدد التوابع غير الضرورية، فإنك تجعل الكود أكثر وضوحاً وبساطة.

##كيفية إعادة الهيكلة

  1. تأكد من أن التابع لم تتم إعادة تعريفه في الفئات الفرعية (Subclasses). إذا تمت إعادة تعريف التابع، فتجنب استخدام هذه التقنية.

  2. ابحث عن جميع استدعاءات التابع. واستبدل هذه الاستدعاءات بمحتوى التابع.

  3. احذف التابع.