Sobes.tech
Junior — Middle

Cum acționează pattern-ul Proxy ca intermediar pentru obiectul original?

sobes.tech AI

Răspuns de la AI

Modelul Proxy în Java acționează ca un intermediar între client și obiectul original. Proxy controlează accesul la acest obiect, poate adăuga logică suplimentară înainte sau după apelarea metodelor originalului, cum ar fi caching, verificarea permisiunilor, inițializare leneșă sau jurnalizare.

Astfel, clientul interacționează cu Proxy la fel ca și cu obiectul original, dar Proxy gestionează apelurile și poate modifica comportamentul fără a schimba obiectul original.

Exemplu:

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("Încărcare " + filename);
    }

    public void display() {
        System.out.println("Afișare " + 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); // creare leneșă
        }
        realImage.display();
    }
}

// Utilizare:
Image image = new ProxyImage("foto.jpg");
image.display(); // încărcare și afișare
image.display(); // doar afișare, fără reîncărcare

În acest exemplu, Proxy controlează crearea și accesul la obiectul real, optimizând utilizarea resurselor.