Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Замена примитива объектом (Replace Primitive with Object).md
2026-02-23 19:52:05 +03:00

2.3 KiB
Raw Blame History

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

!Pasted image 20250127092118.png

Проблема Часто на ранних стадиях разработки принимается решение о представлении простых фактов в виде простых элементов данных, таких как числа или строки. По мере развития программы простые вещи перестают быть столь простыми — так, некоторое время телефонный номер может быть представлен в виде строки, но позже ему потребуется специальное поведение для форматирования, извлечения кода города и тому подобного.

orders.filter(о => "high" === о.priority || "rush" === о.priority) ;

Решение

orders.filter(о => о.priority.higherThan(new Priority('normal")))

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

Достоинства

  • Выполняется самоинкапсуляция поля

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

  1. Примените рефакторинг Инкапсуляция переменной (Encapsulate Variable)
  2. Создайте простой класс-значение для данных. Он должен принимать существующее значение в конструкторе и предоставлять для этого значения метод доступа
  3. Измените метод установки значения таким образом, чтобы он создавал новый экземпляр класса-значения и сохранял его в поле, изменяя тип поля, если таковое имеется.
  4. Измените метод получения значения таким образом, чтобы он возвращал результат вызова метода получения значения нового класса.

Ссылки