2.1 KiB
2.1 KiB
#рефакторинг #методы_рефакторинга
Проблема Класс почти ничего не делает, ни за что не отвечает, и никакой ответственности для этого класса не планируется
class Person {
get officeAreaCode() {return this.—telephoneNumber.areaCode;}
get officeNumber() {return this.—telephoneNumber.number;}
}
class TelephoneNumber {
get areaCode() (return this._areaCode;}
get number() (return this._number;}
}
Решение
Переместите все фичи из описанного класса в другой.
class Person {
get officeAreaCode() {return this._officeAreaCode;}
get officeNumber() {return this._officeNumber;}
}
Причины рефакторинга
Часто этот рефакторинг оказывается следствием недавнего «переселения» части фич класса в другие, после чего от исходного класса мало что осталось.
Достоинства
- Меньше бесполезных классов — больше свободной оперативной памяти, в том числе, и у вас в голове
Порядок рефакторинга
- Создайте в классе-приёмнике публичные поля и методы, которые есть в классе-доноре. Методы должны обращаться к аналогичным методам класса-донора.
- Замените все обращения к классу-донору обращениями к полям и методам класса-приёмника.
- Удалите исходный класс.
