setメソッドの削除 (リファクタリング-p300)
リファクタリング
Published: 2019-03-09

目的

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

今回は「setメソッドの削除」について書きます。

「setメソッドの削除」 について

setメソッドを提供するということは、そのフィールドが変更される可能性を示しています。

変更前

<?php

class Account
{
    private $_id;

    public function __construct($id)
    {
        $this->setId($id);
    }

    public function setId($arg)
    {
        $this->_id = 'ZZ' . $arg;
    }

    public function getId()
    {
        return $this->_id;
    }
}
$a = new Account(10);
echo $a->getId() . "\n";

変更後

<?php

class Account2
{
    private $_id;

    public function __construct($id)
    {
        $this->initializeId($id);
    }

    private function initializeId($arg)
    {
        $this->_id = 'ZZ' . $arg;
    }

    public function getId()
    {
        return $this->_id;
    }
}
$a = new Account(10);
echo $a->getId() . "\n";