Sobes.tech
Junior — Middle

¿De qué manera el patrón Proxy actúa como intermediario para el objeto original?

sobes.tech AI

Respuesta de la IA

El patrón Proxy en Java actúa como un intermediario entre el cliente y el objeto original. Proxy controla el acceso a este objeto, puede agregar lógica adicional antes o después de llamar a los métodos del original, como almacenamiento en caché, verificación de permisos, inicialización perezosa o registro.

De esta manera, el cliente interactúa con Proxy igual que con el objeto original, pero Proxy gestiona las llamadas y puede modificar el comportamiento sin cambiar el objeto original.

Ejemplo:

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("Cargando " + filename);
    }

    public void display() {
        System.out.println("Mostrando " + 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); // creación perezosa
        }
        realImage.display();
    }
}

// Uso:
Image image = new ProxyImage("foto.jpg");
image.display(); // carga y muestra
image.display(); // solo muestra, no se vuelve a cargar

En este ejemplo, Proxy controla la creación y acceso al objeto real, optimizando el uso de recursos.