Рефакторинг

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

Методы рефакторинга

Наиболее употребимые методы рефакторинга:

  • Изменение сигнатуры метода (change method signature);
  • Инкапсуляция поля (encapsulate field);
  • Выделение класса (extract class);
  • Выделение интерфейса (extract interface);
  • Выделение локальной переменной (extract local variable);
  • Выделение метода (extract method);
  • Генерализация типа (generalize type);
  • Встраивание (inline);
  • Введение фабрики (introduce factory);
  • Введение параметра (introduce parameter);
  • Подъём метода (pull up method);
  • Спуск метода (push down method);
  • Переименование метода (rename method);
  • Перемещение метода (move method);
  • Замена условного оператора полиморфизмом (replace conditional with polymorphism);
  • Замена наследования делегированием (replace inheritance with delegation);
  • Замена кода типа подклассами (replace type code with subclasses);
  • Замена кода стек в рекурсию и обратно;