Junior — Middle
De que forma o padrão Proxy atua como intermediário para o objeto original?
sobes.tech IA
Resposta da IA
O padrão Proxy em Java atua como um intermediário entre o cliente e o objeto original. O Proxy controla o acesso a esse objeto, podendo adicionar lógica adicional antes ou depois de chamar os métodos do original, como cache, verificação de permissões, inicialização preguiçosa ou registo.
Assim, o cliente interage com o Proxy da mesma forma que com o objeto original, mas o Proxy gere as chamadas e pode alterar o comportamento sem modificar o objeto original.
Exemplo:
interface Image {
void display();
}
class RealImage implements Image {
private String filename;
public RealImage(String filename) {
this.filename = filename;
loadFromDisk();
}
private void loadFromDisk() {
System.out.println("A carregar " + filename);
}
public void display() {
System.out.println("A mostrar " + filename);
}
}
class ProxyImage implements Image {
private RealImage realImage;
private String filename;
public ProxyImage(String filename) {
this.filename = filename;
}
public void display() {
if (realImage == null) {
realImage = new RealImage(filename); // criação preguiçosa
}
realImage.display();
}
}
// Uso:
Image image = new ProxyImage("foto.jpg");
image.display(); // carregamento e exibição
image.display(); // apenas exibição, sem recarregar
Neste exemplo, o Proxy controla a criação e o acesso ao objeto real, otimizando o uso de recursos.