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