Також відомий як Alternative Classes with Different Interfaces

Запах коду Альтернативні класи з різними інтерфейсами

Симптоми і ознаки

Два класи виконують однакові функції, але мають різні назви методів.

Причини появи

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

Лікування

Потрібно привести інтерфейс класів до спільного знаменника:

Виграш

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

Не варто чіпати, якщо...

  • Іноді об'єднання класів виявляється неможливим або настільки складним, що сенсу займатися цією роботою немає. Один із прикладів - альтернативні класи знаходяться в двох різних бібліотеках, кожна з яких має свою версію класу.

Замучились читати?

Збігайте за подушкою, в нас тут контенту приблизно на 7 годин читання.

Або спробуйте наш новий інтерактивний курс з рефакторингу. Він більш інформативний та набагато цікавіший за банальний тест.

Дізнатися більше...