Junior — Middle
Ako vzor Proxy funguje ako sprostredkovateľ pre pôvodný objekt?
sobes.tech AI
Odpoveď od AI
Vzor Proxy v Jave funguje ako sprostredkovateľ medzi klientom a pôvodným objektom. Proxy kontroluje prístup k tomuto objektu, môže pridávať dodatočnú logiku pred alebo po volaní metód originálu, ako je caching, kontrola práv, lenivé načítanie alebo zaznamenávanie.
Týmto spôsobom klient komunikuje s Proxy rovnako ako s pôvodným objektom, ale Proxy spravuje volania a môže meniť správanie bez zmeny samotného originálu.
Príklad:
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("Načítanie " + filename);
}
public void display() {
System.out.println("Zobrazovanie " + 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); // lenivé vytváranie
}
realImage.display();
}
}
// Použitie:
Image image = new ProxyImage("foto.jpg");
image.display(); // načítanie a zobrazenie
image.display(); // len zobrazenie, bez opätovného načítania
V tomto príklade Proxy kontroluje vytváranie a prístup k reálnemu objektu, optimalizuje využívanie zdrojov.