دمج الأجزاء الشرطية المكررة.
المشكلة
يمكن العثور على كود متطابق في جميع فروع الشرط.
الحل
انقل الكود خارج الشرط.
##مثال
قبل
if (isSpecialDeal()) {
total = price * 0.95;
send();
}
else {
total = price * 0.98;
send();
}بعد
if (isSpecialDeal()) {
total = price * 0.95;
}
else {
total = price * 0.98;
}
send();##لماذا نعيد الهيكلة
يوجد كود مكرر داخل جميع فروع الشرط، غالباً نتيجة لتطور الكود داخل هذه الفروع. ويمكن أن يكون تطوير الفريق عاملاً مساهماً في ذلك.
##الفوائد
- إلغاء تكرار الكود.
##كيفية إعادة الهيكلة
-
إذا كان الكود المكرر في بداية الفروع الشرطية، فانقل الكود إلى مكان قبل الشرط.
-
إذا كان الكود يُنفذ في نهاية الفروع، فضعه بعد الشرط.
-
إذا كان الكود المكرر يقع بشكل عشوائي داخل الفروع، فحاول أولاً نقل الكود إلى بداية أو نهاية الفرع، اعتماداً على ما إذا كان ذلك يغير نتيجة الكود اللاحق.
-
إذا كان ذلك مناسباً وكان الكود المكرر أطول من سطر واحد، فحاول استخدام طريقة استخراج الدالة.