2.1 KiB
2.1 KiB
#рефакторинг #методы_рефакторинга
Проблема
Стоит использовать в том случае, когда тело метода очевиднее самого метода
class PizzaDelivery {
// ...
getRating(): number {
return moreThanFiveLateDeliveries() ? 2 : 1;
}
moreThanFiveLateDeliveries(): boolean {
return numberOfLateDeliveries > 5;
}
}
Решение
Замените вызовы метода его содержимым и удалите сам метод
class PizzaDelivery {
// ...
getRating(): number {
return numberOfLateDeliveries > 5 ? 2 : 1;
}
}
Причины рефакторинга
Иногда встречаются функции, тела которых так же очевидны, как и названия, — либо изначально, либо после рефакторинга. В этом случае можно избавиться от функции. Косвенность может быть полезной, но излишняя косвенность мешает.
Достоинства
- Минимизируя количество бесполезных методов, мы уменьшаем общую сложность кода
Порядок рефакторинга
- Убедитесь, что метод не переопределяется в подклассах. Если он переопределяется, воздержитесь от рефакторинга
- Найдите все вызовы метода. Замените эти вызовы содержимым метода
- Удалите метод
