Sobes.tech
Junior — Middle

Kā darbojas Proxy paraugs kā starpnieks oriģinālajam objektam?

sobes.tech AI

Atbilde no AI

Java Proxy paraugs darbo kā starpnieks starp klientu un oriģinālo objektu. Proxy kontrolē piekļuvi šim objektam, var pievienot papildu loģiku pirms vai pēc oriģināla metožu izsaukšanas, piemēram, kešatmiņu, piekļuves tiesību pārbaudi, slinku inicializāciju vai reģistrēšanu.

Tādējādi klients ar Proxy sadarbojas tāpat kā ar oriģinālo objektu, bet Proxy pārvalda izsaukumus un var mainīt uzvedību bez paša oriģinālā objekta maiņas.

Piemērs:

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("Ielādē " + filename);
    }

    public void display() {
        System.out.println("Attēlo " + 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); // slinka izveide
        }
        realImage.display();
    }
}

// Lietošana:
Image image = new ProxyImage("foto.jpg");
image.display(); // ielāde un attēlošana
image.display(); // tikai attēlošana, atkārtota ielāde nenotiek

Šajā piemērā Proxy kontrolē reālā objekta izveidi un piekļuvi, optimizējot resursu izmantošanu.