Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Изменение объявления функции (Change Function Declaration).md
2026-02-23 19:52:05 +03:00

3.1 KiB
Raw Blame History

#рефакторинг #методы_рефакторинга

!Pasted image 20241115074104.png

Проблема

Название метода не раскрывает суть того, что он делает !Pasted image 20241115074142.png

function circum(radius) {...}

Решение

Измените название метода !Pasted image 20241115074219.png

function circumference(radius) {. . .}

Причины рефакторинга

Наиболее важным элементом такого соединения является имя функции. Хорошее имя позволяет понять, что делает функция, не видя кода, который ее реализует.

  • Метод мог получить неудачное название с самого начала. Например, кто-то создал метод впопыхах, не придал должного значения хорошему названию.
  • С другой стороны, метод мог быть назван удачно изначально, но ввиду расширения его функциональности, имя метода перестало быть актуальным.

Достоинства

    • Улучшает читабельность кода. Постарайтесь дать новому методу такое название, которое бы отражало суть того, что он делает. Например, createOrder()renderCustomerInfo() и т. д.

Порядок рефакторинга

  1. Проверьте, не определён ли метод в суперклассе или подклассе. Если так, нужно будет повторить все шаги и в этих классах
  2. Следующий шаг важен, чтобы сохранить работоспособность программы во время рефакторинга. Итак, создайте новый метод с новыми именем. Скопируйте туда код старого метода. Удалите весь код в старом методе и вставьте вместо него вызов нового метода
  3. Найдите все обращения к старому методу и замените их обращениями к новому
  4. Удалите старый метод. Этот шаг неосуществим, если старый метод является частью публичного интерфейса. В этом случае, старый метод нужно пометить как устаревший (deprecated)

Борется с запахом

Ссылки