重複した条件記述の断片の統合 (リファクタリング-p243)
リファクタリング
Published: 2019-02-12

目的

「リファクタリング」を理解するためにサンプルコードを PHP で書き換えてみました。

今回は「重複した条件記述の断片の統合」について書きます。

「重複した条件記述の断片の統合」 について

条件式のすべての分岐に同じコードの断片がある。

上記の場合に適用します。

変更前

<?php

function send()
{
    echo "send\n";
}

function isSpecialDeal()
{
    return true;
}

function main($price)
{
    if (isSpecialDeal()) {
        $total = $price * 0.95;
        send();
    } else {
        $total = $price * 0.98;
        send();
    }

    echo $total . "\n";
}

main(1000);

変更後

<?php

function send2()
{
    echo "send2\n";
}

function isSpecialDeal2()
{
    return true;
}

function main2($price)
{
    if (isSpecialDeal2()) {
        $total = $price * 0.95;
    } else {
        $total = $price * 0.98;
    }

    send2();

    echo $total . "\n";
}

main2(1000);