Junior — Middle
In che modo il pattern Proxy funge da intermediario per l'oggetto originale?
sobes.tech AI
Risposta dell'AI
Il pattern Proxy in Java funge da intermediario tra il client e l'oggetto originale. Il Proxy controlla l'accesso a quest'ultimo, può aggiungere logica aggiuntiva prima o dopo la chiamata ai metodi dell'originale, come caching, verifica dei permessi, inizializzazione pigra o logging.
In questo modo, il client interagisce con il Proxy come se fosse l'oggetto originale, ma il Proxy gestisce le chiamate e può modificare il comportamento senza cambiare l'oggetto originale.
Esempio:
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("Caricamento di " + filename);
}
public void display() {
System.out.println("Visualizzazione di " + 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); // creazione pigra
}
realImage.display();
}
}
// Uso:
Image image = new ProxyImage("foto.jpg");
image.display(); // caricamento e visualizzazione
image.display(); // solo visualizzazione, nessun caricamento ripetuto
In questo esempio, il Proxy controlla la creazione e l'accesso all'oggetto reale, ottimizzando l'uso delle risorse.