Добавление параметра
Такой рефакторинг применяется, когда методу нужна дополнительная информация от вызывающего его клиента.
php
<?php // ..... было public function getProducts() { // забираем продукты из базы return $this->orm->select('products'); }
Мы живем в изменяющемся мире! Предположим, что бизнес стал развиваться и товаров стало большe, тогда нам приедтся их категоризировать. После этого возникнет естественное желание иметь возможность просматривать товары только одной категории, однако старый функционал неплохо бы сохранить.
php
public function getProducts($category_id=null) { if($cid) { $this->orm->setCriteriaEqual('category_id',$cid); } // забираем продукты из базы return $this->orm->select('products'); }
Обратите внимание, что в данном случае рефакторинг выполнен безопасно, т.е. старый функционал не пострадал — если клиент вызовет метод без параметров, ему вернутся все продукты.