تضمين التابع (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
-
تأكد من أن التابع لم تتم إعادة تعريفه في الفئات الفرعية (Subclasses). إذا تمت إعادة تعريف التابع، فتجنب استخدام هذه التقنية.
-
ابحث عن جميع استدعاءات التابع. واستبدل هذه الاستدعاءات بمحتوى التابع.
-
احذف التابع.