メソッドのインライン化 (リファクタリング-p117)
リファクタリング
Published: 2018-10-28

目的

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

今回は「メソッドのインライン化」について書きます。

「メソッドのインライン化」 について

「メソッドのインライン化(117)」を適用するのは、間接化し過ぎた結果、 すべてのメソッドが別のメソッドへと単純に委譲しているようにしか見えず、 委譲の途中で道に迷ってしまうようなときです。

変更前

class Sample
{
    public $_numberOfLateDeliveries = 3;

    public function getRating()
    {
        return ($this->moreThanFiveLateDeliveries()) ? 2 : 1;
    }

    private function moreThanFiveLateDeliveries()
    {
        return $this->_numberOfLateDeliveries > 5;
    }
}

// 呼び出し
$sample = new Sample();
echo $sample->getRating() . "\n";

変更後

class SampleNew
{
    public $_numberOfLateDeliveries = 3;

    public function getRating()
    {
        return ($this->_numberOfLateDeliveries > 5) ? 2 : 1;
    }
}

// 呼び出し
$sample_new = new SampleNew();
echo $sample->getRating() . "\n";