Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Clases alternativas con interfaces diferentes.

Dos clases realizan funciones idénticas, pero tienen nombres de método diferentes.

##Signos y síntomas

Dos clases realizan funciones idénticas, pero tienen nombres de método diferentes.

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

##Causas del problema

Es probable que el programador que creó una de las clases no supiera que ya existía una clase funcionalmente equivalente.

##Tratamiento

##Beneficios

  • Te deshaces de código duplicado innecesario, lo que hace que el código resultante sea menos voluminoso.

  • El código se vuelve más legible y comprensible (ya no tienes que adivinar el motivo de la creación de una segunda clase que realiza exactamente las mismas funciones que la primera).