Sobes.tech
Junior — Middle

Quelle est la fonction du motif Proxy dans le développement de solutions logicielles?

sobes.tech IA

Réponse de l'IA

Паттерн Proxy используется для создания заместителя (представителя) другого объекта, который контролирует доступ к этому объекту. Это позволяет:

  • Отложить создание ресурсоёмкого объекта (ленивая инициализация).
  • Контролировать доступ (например, проверка прав).
  • Логировать вызовы.
  • Кэшировать результаты.

В Java 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("Loading " + filename);
    }
    public void display() {
        System.out.println("Displaying " + 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();
    }
}

Здесь ProxyImage контролирует создание RealImage и может оптимизировать работу с ним.