Відокремлення методуВідокре́млення ме́тоду (англ. 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;
}
Причини рефакторингуЧим більше коду в методі, тим складніше розібратися в тому, що він робить. Це основна проблема, яку вирішує даний рефакторинг. Відокремлення методу не лише вбиває безліч запахів в коді, але й є одним з етапів безлічі інших рефакторингів. Переваги
Порядок рефакторингу
Анти-рефакторинг
Схожі рефакторинги
Допомагає іншим рефакторингам
Бореться з запахом
Див. такожПосилання
|