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 чыныгы объекттин түзүлүшүн жана киришин көзөмөлдөйт, ресурстарды эффективдүү пайдаланууну камсыздайт.