Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Встраивание класса (Inline Class).md
2026-02-23 19:52:05 +03:00

2.1 KiB
Raw Blame History

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

!Pasted image 20250128082839.png

Проблема Класс почти ничего не делает, ни за что не отвечает, и никакой ответственности для этого класса не планируется

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;}
}

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

Часто этот рефакторинг оказывается следствием недавнего «переселения» части фич класса в другие, после чего от исходного класса мало что осталось.

Достоинства

  • Меньше бесполезных классов — больше свободной оперативной памяти, в том числе, и у вас в голове

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

  1. Создайте в классе-приёмнике публичные поля и методы, которые есть в классе-доноре. Методы должны обращаться к аналогичным методам класса-донора.
  2. Замените все обращения к классу-донору обращениями к полям и методам класса-приёмника.
  3. Удалите исходный класс.

Обратный рефакторинг

Ссылки