Книга: Экстремальное программирование. Разработка через тестирование
Параметр метода в параметр конструктора (Method Parameter to Constructor Parameter)
Параметр метода в параметр конструктора (Method Parameter to Constructor Parameter)
Как переместить параметр из метода или методов в конструктор?
Как
1. Добавьте параметр в конструктор.
2. Добавьте в класс переменную экземпляра с тем же именем, что и параметр.
3. Установите значение переменной в конструкторе.
4. Одну за другой преобразуйте ссылки parameter в ссылки this.parameter.
5. Когда в коде не останется ни одной ссылки на параметр, удалите параметр из метода.
6. После этого удалите ненужный теперь префикс this.
7. Присвойте переменной подходящее имя.
Зачем
Если вы передаете один и тот же параметр нескольким разным методам одного и того же объекта, вы можете упростить API, передав параметр только один раз (устранив дублирование). Напротив, если вы обнаружили, что некоторая переменная экземпляра используется только в одном методе объекта, вы можете выполнить обратный рефакторинг.
27 Fowler, Martin. Refactoring: Improving the Design of Existing Code. Boston: Addison-Wesley, 1999. Русское издание: Фаулер. М. Рефакторинг: улучшение существующего кода. СПб.: Символ-Плюс, 2003
- Согласование различий (Reconcile Differences)
- Изоляция изменений (Isolate Change)
- Миграция данных (Migrate Data)
- Выделение метода (Extract Method)
- Встраивание метода (Inline Method)
- Выделение интерфейса (Extract Interface)
- Перемещение метода (Move Method)
- Метод в объект (Method Object)
- Добавление параметра (Add Parameter)
- Параметр метода в параметр конструктора (Method Parameter to Constructor Parameter)