10.12.2019. Лекция №16. Рефакторинг (ч.3).
Решение задач обобщения.  
- Подъем поля (Pull up field). 
 
- Подъем метода (Pull up method). 
 
- Спуск метода (Push down method). 
 
- Спуск поля (Push down field). 
 
- Извлечение подкласса (Extract subclass). 
 
- Извлечение суперкласса (Extract superclass). 
 
- Извлечение интерфейса (Extract interface). 
 
- Свертывание иерархии (Collapse hierarchy). 
 
- Замена наследования делегированием (Replace Inheritance with delegation). 
 
- Замена делегирования наследованием (Replace delegation with inheritance). 
 
Раздувальщики (сode smells).  
- Длинный метод (Long method). 
 
- Большой класс (Large class). 
 
- Одержимость элементарными типами (Primitive obsession). 
 
- Длинный список параметров (Long parameter list). 
 
- Группы данных (Data clumps). 
 
Утяжелители изменений (code smells).  
- Расходящиеся модификации (Divergent change). 
 
- Стрельба дробью (Shotgun surgery). 
 
Замусориватели (code smells).  
- Комментарии (Comments). 
 
- Дублирование кода (Duplicate code). 
 
- Мертвый код (Dead code). 
 
- Теоретическая общность (Speculate generality). 
 
Опутыватели связями (code smells).  
- Завистливые функции (Feature envy). 
 
- Неуместная близость (Inappropriate intimacy). 
 
- Цепочка вызовов (Message chains). 
 
- Посредник (Middle man).
 
Действия