You are on page 1of 9

МЕТОДИ

РЕФАКТОРИНГ
У КОДУ
Виконала:
студентка групи ПЗПІ-19-1
Пархоменко Юлія Юріївна
Розглянуті методи рефакторингу

■ Вбудовування методу (Inline Method)

■ Заміна параметру явними методами (Replace Parameter with Explicit


Methods)

■ Видалення керуючого флагу (Remove Control Flag)


(Inline Method)

Вбудовування методу
Проблема: Було:
Варто використовувати в тому випадку, коли тіло
методу очевидніше самого методу.

Причина рефакторингу:
Основна причина – тіло методу складається із
простого делегування до іншого методу. Саме
собою таке делегування — не проблема. Але
якщо таких методів досить багато, стає дуже
легко заплутатися в них. Найчастіше методи не
бувають надто короткими спочатку, а стають
такими внаслідок змін у програмі.
(Inline Method)

Вбудовування методу
Рішення: Стало:
Замініть виклики методу його вмістом та видаліть метод.

Переваги:
Мінімізуючи кількість непотрібних методів, ми
зменшуємо загальну складність коду.

Порядок рефакторингу:
1. Переконайтеся, що метод не перевизначається у
підкласах. Якщо він перевизначається, утримайтеся
від рефакторингу.
2. Знайдіть усі виклики методу. Замініть ці виклики
вмістом методу.
3. Видаліть метод.
(Replace Parameter with Explicit Methods)

Заміна параметру явними методами


Проблема: Було:
Метод розбитий на частини, кожна з яких
виконується залежно від значення якогось
параметра.

Причина рефакторингу:
Метод, що містить варіанти виконання, розрісся
до грандіозних розмірів. У кожному з таких
ланцюжків виконується нетривіальний код. При
цьому нові варіанти додаються дуже рідко.
(Replace Parameter with Explicit Methods)

Заміна параметру явними методами


Рішення: Стало:
Винесіть окремі частини методу у власні методи та
викликайте їх замість оригінального методу.

Переваги:
Покращує читабельність коду. Більш очевидним є код,
який ми отримали після рефакторингу.

Порядок рефакторингу:
1. Для кожного варіанта виконання методу створіть свій
метод. Викликайте ці методи в залежності від значення
параметра в основному методі.
2. Знайдіть усі місця, де викликається оригінальний метод. Підставте
туди виклик одного з нових методів залежно від параметра, що
передається.
3. Якщо не залишиться жодного виклику оригінального методу, його
можна видалити.
(Remove Control Flag )

Видалення керуючого флагу


Проблема: Було:
Є булева змінна, яка грає роль керуючого
прапора для кількох булевих виразів.

Причина рефакторингу:
Раніше хорошим стилем програмування
вважалося мати у функції одну вхідну точку
(рядок оголошення функції) та одну вихідну
точку (у самому кінці функції). У сучасних
мовах програмування цей підхід застарів,
тому що у нас з'явилися спеціальні
оператори для керування ходом програми
в циклах та інших складних конструкціях:
break: зупиняє виконання циклу;
continue: зупиняє виконання поточного витка циклу та переходить до перевірки умови циклу та наступної ітерації;
return: зупиняє виконання всієї функції та повертає її результат, якщо він поданий у цьому операторі.
(Remove Control Flag )

Видалення керуючого флагу


Рішення: Стало:
Використовуйте break, continue та return
замість цієї змінної.

Переваги:
Код з керуючим прапором часто виходить
значно заплутанішим, ніж при використанні
операторів управління виконанням.

Порядок рефакторингу:
1. Знайдіть присвоєння значення керуючому прапору, яке призводить до виходу з циклу або поточної ітерації.
2. Замініть його на break, якщо це вихід із циклу, або continue, якщо це вихід з ітерації, або return, якщо потрібно
повернути це значення з функції.
3. Приберіть решту коду та перевірки, пов'язані з керуючим прапором.
Дякую за увагу!

You might also like