Sobes.tech
Junior — Middle

Comment le motif Proxy agit-il en tant qu'intermédiaire pour l'objet original?

sobes.tech IA

Réponse de l'IA

Le motif Proxy en Java agit en tant qu’intermédiaire entre le client et l’objet original. Proxy contrôle l’accès à cet objet, peut ajouter une logique supplémentaire avant ou après l’appel des méthodes de l’original, comme la mise en cache, la vérification des droits d’accès, l’initialisation paresseuse ou la journalisation.

Ainsi, le client interagit avec Proxy comme avec l’objet original, mais Proxy gère les appels et peut modifier le comportement sans changer l’objet original.

Exemple:

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("Chargement de " + filename);
    }

    public void display() {
        System.out.println("Affichage de " + 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); // création paresseuse
        }
        realImage.display();
    }
}

// Utilisation:
Image image = new ProxyImage("photo.jpg");
image.display(); // chargement et affichage
image.display(); // affichage seul, pas de rechargement

Dans cet exemple, Proxy contrôle la création et l’accès à l’objet réel, optimisant l’utilisation des ressources.