2.3 KiB
2.3 KiB
#рефакторинг #запахи_кода
Одним из больших преимуществ использования классов является возможность подстановки, позволяющая в случае необходимости подставлять один класс вместо другого. Но это работает, только если их интерфейсы одинаковы
Признак
- Два класса выполняют одинаковые функции, но имеют разные названия методов
Причины появления
- Программист, который создал один из классов, скорей всего, не знал о том, что в программе уже существует аналогичный по функциям класс
Рефакторинги
- Изменение объявления функции (Change Function Declaration)
- Перенос функции (Move Function)
- Извлечение суперкласса (Extract Superclass)
Результат
- Вы избавляетесь от ненужного дублирования кода, и, таким образом, уменьшаете его размер
- Повышается читабельность кода, улучшается его понимание. Вам больше не придется гадать, зачем создавался второй класс, выполняющий точно такие же функции, как и первый
Не стоит трогать, если...
-Иногда объединить классы оказывается невозможно либо настолько сложно, что смысла заниматься этой работой нет. Один из примеров — альтернативные классы находятся в двух разных библиотеках, каждая из которых имеет свою версию класса

