2.3 KiB
2.3 KiB
#рефакторинг #методы_рефакторинга
Проблема Часто на ранних стадиях разработки принимается решение о представлении простых фактов в виде простых элементов данных, таких как числа или строки. По мере развития программы простые вещи перестают быть столь простыми — так, некоторое время телефонный номер может быть представлен в виде строки, но позже ему потребуется специальное поведение для форматирования, извлечения кода города и тому подобного.
orders.filter(о => "high" === о.priority || "rush" === о.priority) ;
Решение
orders.filter(о => о.priority.higherThan(new Priority('’normal")))
Причины рефакторинга
Достоинства
- Выполняется самоинкапсуляция поля
Порядок рефакторинга
- Примените рефакторинг Инкапсуляция переменной (Encapsulate Variable)
- Создайте простой класс-значение для данных. Он должен принимать существующее значение в конструкторе и предоставлять для этого значения метод доступа
- Измените метод установки значения таким образом, чтобы он создавал новый экземпляр класса-значения и сохранял его в поле, изменяя тип поля, если таковое имеется.
- Измените метод получения значения таким образом, чтобы он возвращал результат вызова метода получения значения нового класса.
