Refactoring 014 – نحوه حذف IF

اولین دستورالعملی که یاد گرفتید باید کمترین چیزی باشد که استفاده می کنید.

TL;DR: تمام جملات IF تصادفی خود را حذف کنید

مشکلات پرداخته شده است

  • اشتباهات و اشکالات احتمالی

کد بوی 07 – متغیرهای بولی

کد بوی 36 – عبارات Switch/case/elseif/else/if

کد بوی 133 – شرایط IF سخت کد شده

کد بوی 156 – غیر ضمنی

کد بوی 119 – کد پله

کد بوی 145 – هک اتصال کوتاه

کد بوی 101 – مقایسه در برابر بولین ها

کد بوی 45 – چند شکلی نیست

مراحل

  1. یک سلسله مراتب چند شکلی را بیابید یا ایجاد کنید.

  2. بدنه هر IF را به انتزاع مربوطه منتقل کنید.

  3. انتزاعات را نام ببرید.

  4. روش را نام ببرید.

  5. اگر عبارت ها را با پیام چند شکلی ارسال می کند جایگزین کنید.

کد نمونه

قبل از

public String handleMicrophoneState(String state) {
    if (state.equals("off")) {
        return "Microphone is off";
    } else {
        return "Microphone is on";
    }
}

/* The constant representing the 'off' state is
duplicated throughout the code, 
increasing the risk of typos and spelling mistakes. 
The "else" condition doesn't explicitly check for the 'on' state;
it implicitly handles any state that is 'not off'. 
This approach leads to repetition of the IF condition
wherever the state needs handling, 
exposing internal representation and violating encapsulation.
The algorithm is not...

Source link