Junior — Middle
Aký je účel vzoru Proxy pri vývoji softvérových riešení?
sobes.tech AI
Odpoveď od AI
Vzor Proxy sa využíva na vytvorenie náhradníka (zástupcu) iného objektu, ktorý kontroluje prístup k tomuto objektu. To umožňuje:
- Odložiť vytvorenie náročného objektu (lenivá inicializácia).
- Kontrolovať prístup (napríklad, overenie práv).
- Logovať volania.
- Cacheovať výsledky.
V Jave sa Proxy často implementuje cez rozhrania alebo dynamické proxy.
Príklad: ak máte objekt, ktorý načítava dáta zo siete, Proxy môže najskôr skontrolovať cache a vrátiť dáta odtiaľ, bez kontaktu so sieťou.
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čítavanie " + 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); // lazy načítanie
}
realImage.display();
}
}
Tu ProxyImage kontroluje vytvorenie RealImage a môže optimalizovať jeho použitie.