دمج التعبيرات الشرطية.
لديك شروط متعددة تؤدي إلى نفس النتيجة أو الإجراء.
ادمج كل هذه الشروط في تعبير شرطي واحد.
##Example
double disabilityAmount() {
if (seniority < 2) {
return 0;
}
if (monthsDisabled > 12) {
return 0;
}
if (isPartTime) {
return 0;
}
// حساب مبلغ الإعاقة.
// ...
}double disabilityAmount() {
if (isNotEligibleForDisability()) {
return 0;
}
// حساب مبلغ الإعاقة.
// ...
}##Why Refactor
يحتوي الكود الخاص بك على العديد من العمليات المتناوبة التي تؤدي إجراءات متطابقة. وليس من الواضح سبب تقسيم هذه العمليات.
الغرض الرئيسي من الدمج هو استخراج الشرط إلى دالة منفصلة لمزيد من الوضوح.
##Benefits
-
يزيل كود تدفق التحكم المكرر. يساعد دمج الشروط المتعددة التي لها نفس "الوجهة" في إظهار أنك تقوم بفحص معقد واحد فقط يؤدي إلى إجراء واحد.
-
من خلال دمج جميع العمليات، يمكنك الآن عزل هذا التعبير المعقد في دالة جديدة باسم يوضح الغرض من الشرط.
##How to Refactor
قبل إعادة الهيكلة، تأكد من أن الشروط لا تحتوي على أي "آثار جانبية" (side effects) أو تعدل شيئاً ما، بدلاً من مجرد إرجاع القيم. قد تكون الآثار الجانبية مخفية في الكود الذي يتم تنفيذه داخل العملية نفسها، مثل إضافة شيء ما إلى متغير بناءً على نتائج الشرط.
-
ادمج الشروط في تعبير واحد باستخدام معاملات الربط
andوor. كقاعدة عامة عند الدمج:-
الشروط المتداخلة (nested) يتم ربطها باستخدام
and. -
الشروط المتتالية (consecutive) يتم ربطها باستخدام
or.
-
-
قم بتطبيق طريقة استخراج الدالة على شروط العملية وامنح الدالة اسماً يعكس الغرض من التعبير.