Sobes.tech
Junior — Middle

როგორ მუშაობს პროქსის ნიმუში ორიგინალური ობიექტისთვის შუამავლის როლში?

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 აკონტროლებს რეალური ობიექტის შექმნას და წვდომას, ოპტიმიზირებს რესურსების გამოყენებას.