Sobes.tech
Junior — Middle

Ինչպե՞ս է Proxy ձևանմուշը հանդես գալիս որպես միջնորդ սկզբնական օբյեկտի համար։

sobes.tech AI

Պատասխան AI-ից

Java-յի Proxy մոդելը գործում է որպես միջնորդ հաճախորդի և սկզբնական օբյեկտի միջև: 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- ն վերահսկում է իրական օբյեկտի ստեղծումը և մուտքը, օպտիմալացնելով ռեսուրսների օգտագործումը։