Рефакторинг
Рефакторинг (англ. 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);
- Замена кода стек в рекурсию и обратно;