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

2.5 KiB
Raw Permalink Blame History

#рефакторинг #запахи_кода

!Pasted image 20241112225742.png

Инструкция switch — вовсе не красный флаг. Когда одна и та же условная логика (либо в switch/case, либо в каскаде if/else) появляется в разных местах, проблема состоит в том, что всякий раз, когда вы добавляете ветвь, вы должны найти все инструкции switch и обновить их. Полиморфизм обеспечивает элегантное оружие против темных сил такого повторения.

Признаки

  • У вас есть сложный оператор switch или последовательность if-ов

Причины появления

Одним из очевидных признаков объектно-ориентированного кода служит сравнительно редкое использование операторов типа switch или case. Часто один и тот же блок switch оказывается разбросанным по разным местам программы. При добавлении в него нового варианта приходится искать все эти блоки switch и модифицировать их. Как правило, заметив блок switch, следует подумать о полиморфизме.

Рефакторинги

!Pasted image 20241112225751.png

Результат

  • Улучшает организацию кода

Не стоит трогать, если...

  • Когда оператор switch выполняет простые действия, нет никакого смысла что-то менять в коде
  • Зачастую оператор switch используется в фабричных паттернах проектирования (Фабричный методАбстрактная фабрика) для выбора создаваемого класса.

Ссылки