Sobes.tech
Junior — Middle

Ako vzor Proxy funguje ako sprostredkovateľ pre pôvodný objekt?

sobes.tech AI

Odpoveď od AI

Vzor Proxy v Jave funguje ako sprostredkovateľ medzi klientom a pôvodným objektom. Proxy kontroluje prístup k tomuto objektu, môže pridávať dodatočnú logiku pred alebo po volaní metód originálu, ako je caching, kontrola práv, lenivé načítanie alebo zaznamenávanie.

Týmto spôsobom klient komunikuje s Proxy rovnako ako s pôvodným objektom, ale Proxy spravuje volania a môže meniť správanie bez zmeny samotného originálu.

Príklad:

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("Načítanie " + filename);
    }

    public void display() {
        System.out.println("Zobrazovanie " + 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); // lenivé vytváranie
        }
        realImage.display();
    }
}

// Použitie:
Image image = new ProxyImage("foto.jpg");
image.display(); // načítanie a zobrazenie
image.display(); // len zobrazenie, bez opätovného načítania

V tomto príklade Proxy kontroluje vytváranie a prístup k reálnemu objektu, optimalizuje využívanie zdrojov.