Sobes.tech
Junior — Middle

Qual é a finalidade do padrão Proxy no desenvolvimento de soluções de software?

sobes.tech IA

Resposta da IA

O padrão Proxy é utilizado para criar um substituto (representante) de outro objeto, que controla o acesso a esse objeto. Isso permite:

  • Adiar a criação de um objeto que consome muitos recursos (inicialização preguiçosa).
  • Controlar o acesso (por exemplo, verificar permissões).
  • Registrar chamadas.
  • Armazenar resultados em cache.

Em Java, o Proxy é frequentemente implementado através de interfaces ou proxies dinâmicos.

Exemplo: se você tem um objeto que carrega dados da rede, o Proxy pode primeiro verificar o cache e retornar os dados de lá, sem acessar a rede.

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("Carregando " + filename);
    }
    public void display() {
        System.out.println("Exibindo " + 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); // carregamento preguiçoso
        }
        realImage.display();
    }
}

Aqui, ProxyImage controla a criação de RealImage e pode otimizar seu uso.