Logotipo do ConstructiCat
CodeBust.
Explorar a seção ▾

Classes Alternativas com Interfaces Diferentes.

Duas classes executam funções idênticas, mas têm nomes de métodos diferentes.

##Sinais e sintomas

Duas classes executam funções idênticas, mas têm nomes de métodos 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 do problema

O programador que criou uma das classes provavelmente não sabia que uma classe funcionalmente equivalente já existia.

##Tratamento

##Benefícios

  • Você elimina código duplicado desnecessário, deixando o código resultante menos volumoso.

  • O código se torna mais legível e compreensível (você não precisa mais adivinhar o motivo da criação de uma segunda classe que executa exatamente as mesmas funções da primeira).