ConstructiCat Logo
CodeBust.
Browse section ▾

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

Problem

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

Solution

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

##Example

Before
class PizzaDelivery {
  // ...
  int getRating() {
    return moreThanFiveLateDeliveries() ? 2 : 1;
  }
  boolean moreThanFiveLateDeliveries() {
    return numberOfLateDeliveries > 5;
  }
}
After
class PizzaDelivery {
  // ...
  int getRating() {
    return numberOfLateDeliveries > 5 ? 2 : 1;
  }
}

##Why Refactor

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

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

##Benefits

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

##How to Refactor

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

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

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