Base/Knowledges/IT/Рефакторинг/Запахи кода/Параллельные иерархии наследования.md
2026-02-23 19:52:05 +03:00

26 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#рефакторинг #запахи_кода
![[Pasted image 20241114073259.png]]
### **Признаки**
- Всякий раз при создании подкласса какого-то класса приходится создавать ещё один подкласс для другого класса
### **Причины появления**
- Пока иерархия была небольшая, всё было хорошо. Но с появлением новых классов вносить изменения становилось всё сложнее и сложнее
### **Рефакторинги**
- [[Перенос поля (Move Field)]]
- [[Перенос функции (Move Function)]]
![[Pasted image 20241114073424.png]]
### **Результат**
- Уменьшает дублирования кода
- Может улучшить организацию кода
### **Не стоит трогать, если...**
- Иногда наличие паралельной иерархии — это необходимое зло, без которого устройство программы было бы еще хуже. Если вы обнаружите, что ваши попытки устранить дублирование приводят к еще большему ухудшению организации кода, то... остановите рефакторинг, откатите все внесенные изменения, выпейте чаю и начните привыкать к этому коду
### **Ссылки**
- https://refactoring.guru/ru/smells/parallel-inheritance-hierarchies