2.4 KiB
#рефакторинг #запахи_кода
Иногда выясняется, что в некотором классе поле устанавливается только в определенных обстоятельствах. Такой код труден для понимания, поскольку вы ожидаете, что объекту нужны все его поля. Можно сломать голову, пытаясь понять, для чего нужна некоторая переменная, если найти, где она используется, никак не удается.
Признаки
Временные поля — это поля, которые нужны объекту только при определённых обстоятельствах. Только тогда они заполняются какими-то значениями, оставаясь пустыми в остальное время
Причины появления
Зачастую временные поля создаются для использования в алгоритме, который требует большого числа входных данных. Так, вместо создания большого числа параметров в таком методе, программист решает создать для этих данных поля в классе. Эти поля используются только в данном алгоритме, а в остальное время простаивают.
Такой код очень трудно понять. Вы ожидаете увидеть данные в полях объекта, а они почему-то пустуют почти все время.
Рефакторинги
- Извлечение класса (Extract Class)
- Перенос функции (Move Function)
- Введение частного случая (Introduce Special Case)
Результат
- Улучшает понятность и организацию кода


