Передача всего объекта.
Вы получаете несколько значений из объекта, а затем передаёте их в метод как параметры.
Вместо этого передавайте весь объект.
##Example
int low = daysTempRange.getLow();
int high = daysTempRange.getHigh();
boolean withinPlan = plan.withinRange(low, high);boolean withinPlan = plan.withinRange(daysTempRange);##Why Refactor
Проблема заключается в том, что перед вызовом вашего метода нужно каждый раз вызывать методы будущего объекта-параметра. Если способ вызова этих методов либо количество данных, получаемых для метода, поменяется, то изменения придётся искать и вносить в дюжину мест по всей программе.
Вместо этого код получения всех нужных данных может храниться одном месте — в самом методе.
##Benefits
-
Вместо пачки разнообразных параметров вы видите один объект с понятным названием.
-
Если методу понадобятся ещё какие-то данные из объекта, не нужно будет переписывать все места, где вызывается этот метод, а только лишь внутренности самого метода.
##How to Refactor
-
Создайте параметр в методе для объекта, из которого можно получить нужные значения.
-
Теперь начинайте по одному удалять старые параметры из метода, заменяя их в коде вызовами соответствующих методов объекта-параметра. Тестируйте программу после каждой замены параметра.
-
Удалите код получения значений из объекта-параметра, который стоял перед вызовом метода.