2.3 KiB
2.3 KiB
#рефакторинг #методы_рефакторинга
Проблема
Когда группы функций, которые тесно взаимодействуют с общими данными (обычно передаваемыми в качестве аргументов в вызовы функций), то есть возможность сформировать класс
function base(aReading) {...}
function taxableCharge(aReading) {...}
function calculateBaseCharge(aReading) {...}
Решение
Использование класса создает общую среду, в которой совместное использование этих функций видно более отчетливо и позволяет упростить вызовы функций внутри объекта путем удаления множества аргументов. Кроме того, класс предоставляет возможность получения ссылки для передачи такого объекта в другие части системы
class Reading {
base() {...}
taxableCharge() {...}
calculateBaseCharge() {...}
}
Достоинства
- Одним из существенных преимуществ применения класса является то, что он позволяет клиентам изменять основные данные объекта при сохранении их согласованности
Порядок рефакторинга
- Сгруппируйте общие данные для двух функций в структуру
- Перенесите каждую функцию, которая использует общую запись в новый класс
- Любые аргументы вызова функции, которые являются членами класса, могут быть удалены из списка аргументов
