Padrão ADAPTER
A função do Padrão ADAPTER é fazer com que a interface de uma classe possa ser "adaptada" à interface de uma outra para que essas possam trabalhar juntas. É a melhor forma de se ligar classes que tenham interfaces imcompatíveis. Podemos usar o Adapter caso seja necessário modificar a interface de uma classe em função de um novo requisito.
O padrão de projeto Adapter é necessário quando possuímos dois objetos que precisam se comunicar mas as suas interfaces são diferentes. O adaptador é responsável por "converter" uma interface em outra tornando possível a comunicação entre os objetos.
EXEMPLO:
public void TomadaTresPinos {
public void fornecerEnergia ();
}
public interface TomadaDoisPinos {
public void fornecerEnergia ();
}
public interface PlugueTresPinos {
public void conectar (TomadaTresPinos tomada) ;
}
public void PlugueDoisPinos {
public void conectar (TomadaDoisPinos) ;
}
public class TomadaEuropeia implements TomadaTresPinos {
public void fornecerEnergia() {
System.out.println("[TOMADA] Fornecendo energia para um plugue de três pinos!");
}
}
public class PlugueEuropeu implements PlugueTresPinos {
public void conectar(TomadaTresPinos tomada) {
System.out.println("[PLUGUE] Pegando energia elétrica de uma tomada de três pinos.");
tomada.fornecerEnergia();
}
}
public class PlugueComum implements PlugueDoisPinos {
public void conectar(TomadaDoisPinos tomada) {
System.out.println("[PLUGUE] Pegando energia elétrica de uma tomada de dois pinos.");
tomada.fornecerEnergia();
}
}
public class Adaptador implements TomadaTresPinos {
private TomadaDoisPinos tomada;
public Adaptador(TomadaDoisPinos tomada) {
this.tomada = tomada;
}
public void fornecerEnergia() {
tomada.fornecerEnergia();
}
}
public class Main {
public static void main(String[] args) {
TomadaDoisPinos tomada = new TomadaComum();
PlugueTresPinos plugue = new PlugueEuropeu();
Adaptador adapter = new Adaptador(tomada);
plugue.conectar(adapter);
}
}
Link Referência
