Відокремлення методу
Перейти до навігації
Перейти до пошуку
Відокре́млення ме́тоду (англ. Extract Method) - прийом рефакторингу, що дозволяє розбити код на дрібніші та зрозуміліші частини, прибрати дублювання коду і полегшити подальшу роботу з ним.
Є фрагмент коду (C#), який можна згрупувати.
void PrintOwing()
{
List<Order> orders = orders.Elements;
double outstanding = 0.0;
// print owings
foreach (Order order in orders)
{
outstanding += order.GetAmount();
}
// print details
Console.WriteLine("name: " + name);
Console.WriteLine("amount: " + outstanding);
}
Перенести ці фрагменти в нові методи (чи функції) і викликати замість старого коду.
void PrintOwing()
{
double outstanding = GetOutstanding();
PrintDetails(outstanding);
}
void PrintDetails(double outstanding)
{
Console.WriteLine("name: " + name);
Console.WriteLine("amount: " + outstanding);
}
double GetOutstanding()
{
List<Order> orders = orders.Elements;
double outstanding = 0.0;
foreach (Order order in orders)
{
outstanding += order.GetAmount();
}
return outstanding;
}
Чим більше коду в методі, тим складніше розібратися в тому, що він робить. Це основна проблема, яку вирішує даний рефакторинг. Відокремлення методу не лише вбиває безліч запахів в коді, але й є одним з етапів безлічі інших рефакторингів.
- Покращує читабельність коду.
- Прибирає дублювання коду. Іноді код, винесений в метод, можна знайти і в інших місцях програми. У такому разі є сенс замінити знайдені ділянки коду викликом нового методу.
- Ізолює незалежні частини коду, зменшуючи імовірність помилок. (наприклад, з вини перепризначення не тієї змінної).
- Створити новий метод. Підібрати назву яка відображає суть того, що робитиме цей метод.
- Скопіювати фрагмент коду, що цікавить, в новий метод. Видалити цей фрагмент із старого місця і замінити викликом нового методу.
- Знайти усі змінні, які використовувалися в цьому фрагменті коду. Якщо вони були оголошені всередині цього фрагменту і не використовуються поза ним, залишити їх без змін — вони стануть локальними змінними нового методу.
- Якщо змінні оголошені перед ділянкою коду, то їх слід передати в параметри нового методу, щоб використати значення, які в них знаходилися раніше. Іноді від таких змінних простіше позбавитися за допомогою заміни змінних викликом методу.
- Якщо локальна змінна якось змінюється у ділянці коду, це може означати, що її змінене значення знадобиться далі в основному методі, якщо це дійсно так, то значення цієї змінної слід повернути в основний метод.
- Вбудовування методу
- Переміщення методу
- Заміна параметрів об'єктом
- Створення шаблонного методу
- Параметризація методу
- Дублювання коду
- Довгий метод
- Заздрісні функції
- Оператори switch
- Ланцюжок викликів
- Коментарі
- Клас даних
- Extract Method [Архівовано 19 лютого 2015 у Wayback Machine.]
- Відокремлення методу [Архівовано 14 грудня 2014 у Wayback Machine.]
- Extract Method [Архівовано 2 грудня 2014 у Wayback Machine.]
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |