Обзор темы [Рефакторинг кода]

Передача объекта целиком (Preserve Whole Object)

Несколько значений полей объекта используются как параметры метода.

В качестве параметра использовать весь объект целиком.

int low = daysTempRange.getLow();

int high = daysTempRange.getHigh();

withinPlan = plan.withinRange(low,high);

withinPlan = plan.withinRange(daysTempRange);

Проблема в передаче параметров по значению заключается в том, что если эти значения понадобятся вызываемому методу несколько позже, то их надо заново перезапрашивать, так как за это время они могли измениться.

Если же будет передан объект, то можно получать корректные значения в любое время. Также уменьшение числа параметров ведет к лучшей читаемости кода.

Минус – установление связи между объектом – параметром и объектом – владельцем метода. Если это путает структуру связей, не надо использовать этот рефакторинг.

Если метод использует кучу параметров из другого объекта, может быть имеет смысл перенести его туда, воспользовавшись Перемещением метода.

Если объекта, вмещающего в себя параметры нет, надо его создать с помощью Введения объекта параметров.

Если вызывающий объект передает в метод свои собственные поля, можно их заменить на this, если получающаяся зависимость не важна.