Logo ConstructiCat
CodeBust.
Parcourir la section ▾

Classes alternatives avec des interfaces différentes.

Deux classes remplissent des fonctions identiques mais ont des noms de méthodes différents.

##Signes et symptômes

Deux classes remplissent des fonctions identiques mais ont des noms de méthodes différents.

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); }
}

##Causes du problème

Le programmeur qui a créé l'une des classes ne savait probablement pas qu'une classe fonctionnellement équivalente existait déjà.

##Traitement

##Bénéfices

  • Vous éliminez le code dupliqué inutile, ce qui rend le code obtenu moins volumineux.

  • Le code devient plus lisible et compréhensible (vous n'avez plus à deviner la raison de la création d'une deuxième classe qui remplit exactement les mêmes fonctions que la première).