Прийоми рефакторингу
Складання методів
Значна частина рефакторинга присвячується правильному складанню методів. У більшості випадків, коренем усіх зол є занадто довгі методи. Хитросплетіння коду всередині такого методу приховують логіку виконання і роблять метод вкрай складним для розуміння, а значить і для змін. Рефакторинги цієї групи покликані зменшити складність всередині методу, прибрати дублювання коду і полегшити подальшу роботу з ним.
Переміщення функцій між об'єктами
Якщо ви розмістили функціональність по класах не найвдалішим чином - це ще не привід впадати у відчай.
Рефакторинги цієї групи показують як безпечно переміщати функціональність з одних класів в інші, створювати нові класи, а також приховувати деталі реалізації з публічного доступу.
Організація даних
Рефакторинги цієї групи покликані полегшити роботу з даними, замінивши роботу з примітивними типами багатими функціональністю класами.
Крім того, важливим моментом є зменшення зв'язаність між класами, що покращує переносимість класів і шанси їх повторного використання.
- Change Value to Reference
- Change Reference to Value
- Duplicate Observed Data
- Self Encapsulate Field
- Replace Data Value with Object
- Replace Array with Object
Спрощення умовних виразів
Логіка умовного виконання має тенденцію ставати складною, тому ряд рефакторингів спрямований на те, щоб спростити її.
Спрощення викликів методів
Ці рефакторинги роблять виклики методів простіше і ясніше для розуміння. Це, в свою чергу, спрощує інтерфейси взаємодії між класами.
Задачі узагальнення об'єктів
Узагальнення породжує власну групу рефакторингів, в основному пов'язаних з переміщенням функціональності по ієрархії успадкування класів, створення нових класів та інтерфейсів, а також заміни успадкування делегуванням і навпаки.