Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento do padrão adaptador e em que casos é utilizado?

sobes.tech IA

Resposta da IA

O padrão Adaptador (Adapter) é utilizado para "adaptar" a interface de uma classe à interface que o cliente espera. Isso permite que classes com interfaces incompatíveis trabalhem juntas.

Princípio de funcionamento:

  • Existe uma classe com uma interface definida (Adaptee).
  • Existe um cliente que espera outra interface (Target).
  • O adaptador implementa a interface Target e contém dentro de si um objeto Adaptee.
  • As chamadas do cliente são redirecionadas pelo adaptador para os métodos de Adaptee, possivelmente com transformação de dados.

Usam-se quando é necessário integrar código antigo ou bibliotecas externas com interfaces incompatíveis, sem modificá-los.

Exemplo em Java:

// Interface que o cliente espera
interface Target {
    void request();
}

// Classe com interface incompatível
class Adaptee {
    void specificRequest() {
        System.out.println("Chamada de método específico");
    }
}

// Adaptador
class Adapter implements Target {
    private Adaptee adaptee;

    public Adapter(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void request() {
        adaptee.specificRequest();
    }
}

// Uso
public class Main {
    public static void main(String[] args) {
        Adaptee adaptee = new Adaptee();
        Target adapter = new Adapter(adaptee);
        adapter.request(); // Vai chamar specificRequest através do adaptador
    }
}