Sobes.tech
Junior — Middle

Чӣ гуна намунаи Proxy ҳамчун миёнарав барои объекти аслӣ амал мекунад?

sobes.tech AI

Ҷавоб аз AI

Модели Proxy дар Java ҳамчун миёнарав байни муштарӣ ва объектҳои аслӣ кор мекунад. Proxy дастрасиро ба ин объект назорат мекунад, метавонад қабл ё баъд аз фармонҳои методҳои аслӣ логикаи иловагӣ илова кунад, масалан, кешгирӣ, санҷиши ҳуқуқҳо, оғозёбии бефосила ё сабт.

Бинобар ин, муштарӣ бо Proxy ҳамон тавр, ки бо объекти аслӣ муошират мекунад, аммо Proxy фармонҳоро идора мекунад ва метавонад рафторро бидуни тағир додани объекти аслӣ тағир диҳад.

Масалан:

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("Боргирӣ " + filename);
    }

    public void display() {
        System.out.println("Намоиш " + 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); // бунёди бефосила
        }
        realImage.display();
    }
}

// Истифода:
Image image = new ProxyImage("photo.jpg");
image.display(); // боргирӣ ва намоиш
image.display(); // танҳо намоиш, боргирӣ такрор намешавад

Дар ин мисол, Proxy бунёд ва дастрасиро ба объектҳои воқеӣ назорат мекунад, истифодаи захираҳоро оптималӣ мекунад.