オブジェクトによる配列の置き換え (リファクタリング-p186)
リファクタリング
Published: 2018-12-08

目的

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

今回は「オブジェクトによる配列の置き換え」について書きます。

「オブジェクトによる配列の置き換え」 について

配列の各要素が、それぞれ異なる意味を持っている。

配列はデータを組織するための一般的な構造ですが、ある順で並んだ同種のオブジェクトのコレクションを保持するときだけに使うべきです。

変更前

<?php

$row = [];
$row[0] = 'Liverpool';
$row[1] = 15;

$name = $row[0];
$wins = $row[1];

echo 'name: ' . $name . "\n";
echo 'wins: ' . $wins . "\n";

変更後

<?php

class Performance
{
    private $_data = [];

    private $_name;
    private $_wins;

    public function getName()
    {
        return $this->_name;
    }

    public function setName($arg)
    {
        $this->_name = $arg;
    }

    public function getWins()
    {
        return $this->_wins;
    }

    public function setWins($arg)
    {
        $this->_wins = $arg;
    }
}

$row = new Performance();
$row->setName('Liverpool');
$row->setWins(15);

$name = $row->getName();
$wins = $row->getWins();

echo 'name: ' . $name . "\n";
echo 'wins: ' . $wins . "\n";