Junior — Middle
Pode explicar as principais diferenças entre os padrões Adapter, Facade e Proxy e em que situações é melhor usá-los?
sobes.tech IA
Resposta da IA
As principais diferenças entre os padrões Adapter, Facade e Proxy:
-
Adapter (Adaptador): Permite que objetos com interfaces incompatíveis trabalhem juntos. Converte a interface de uma classe na interface esperada pelo cliente.
- Usado quando é necessário integrar uma classe existente com uma nova interface.
-
Facade (Fachada): Fornece uma interface simplificada para um subsistema complexo, ocultando sua complexidade interna.
- Usado para simplificar a interação com um grande número de classes.
-
Proxy (Proxy): Controla o acesso a outro objeto, podendo adicionar lógica adicional (por exemplo, inicialização preguiçosa, cache, segurança).
- Usado quando é necessário gerenciar o acesso ou adicionar comportamento sem modificar o objeto original.
Exemplos de situações:
- Adapter: integração de uma API antiga com uma nova interface.
- Facade: fornecer uma API simples para uma biblioteca complexa.
- Proxy: implementação de carregamento diferido de um recurso ou controle de acesso.
Exemplo de Adapter em Java:
interface Alvo {
void requisicao();
}
class Adaptado {
void requisicaoEspecifica() { System.out.println("Requisição específica"); }
}
class Adaptador implements Alvo {
private Adaptado adaptado = new Adaptado();
public void requisicao() {
adaptado.requisicaoEspecifica();
}
}