Sobes.tech
Junior — Middle

Jak vzor Proxy funguje jako prostředník pro původní objekt?

sobes.tech AI

Odpověď od AI

Vzor Proxy v jazyce Java funguje jako prostředník mezi klientem a původním objektem. Proxy kontroluje přístup k tomuto objektu, může přidávat dodatečnou logiku před nebo po volání metod originálu, například ukládání do mezipaměti, kontrolu oprávnění, líné načítání nebo zaznamenávání.

Tímto způsobem klient komunikuje s Proxy stejně jako s původním objektem, ale Proxy spravuje volání a může měnit chování bez změny samotného originálu.

Pří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čítání " + filename);
    }

    public void display() {
        System.out.println("Zobrazování " + 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); // líné vytváření
        }
        realImage.display();
    }
}

// Použití:
Image image = new ProxyImage("foto.jpg");
image.display(); // načítání a zobrazení
image.display(); // pouze zobrazení, načítání se neopakuje

V tomto příkladu Proxy kontroluje vytváření a přístup k reálnému objektu, optimalizuje využití zdrojů.