Логотип ConstructiCat
CodeBust.
Навигация по разделу ▾

Альтернативные классы с разными интерфейсами.

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

##Признаки и симптомы

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

class SmtpMailer {
  private final SmtpTransport transport = new SmtpTransport();
  void send(Message msg) { transport.write(msg); }
}
class EmailSender {
  private final SmtpTransport transport = new SmtpTransport();
  void deliver(Message msg) { transport.write(msg); }
}

##Причины проблемы

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

##Лечение

##Результат

  • Вы избавляетесь от ненужного дублирования кода, и, таким образом, уменьшаете его размер.

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