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

2.3 KiB
Raw Permalink Blame History

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

!Pasted image 20241113230434.png

Одним из больших преимуществ использования классов является возможность подстановки, позволяющая в случае необходимости подставлять один класс вместо другого. Но это работает, только если их интерфейсы одинаковы

Признак

  • Два класса выполняют одинаковые функции, но имеют разные названия методов

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

  • Программист, который создал один из классов, скорей всего, не знал о том, что в программе уже существует аналогичный по функциям класс

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

!Pasted image 20241113230521.png

Результат

  • Вы избавляетесь от ненужного дублирования кода, и, таким образом, уменьшаете его размер
  • Повышается читабельность кода, улучшается его понимание. Вам больше не придется гадать, зачем создавался второй класс, выполняющий точно такие же функции, как и первый

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

-Иногда объединить классы оказывается невозможно либо настолько сложно, что смысла заниматься этой работой нет. Один из примеров — альтернативные классы находятся в двух разных библиотеках, каждая из которых имеет свою версию класса

Ссылки