Junior — Middle
Jak vzor Proxy funguje jako prostředník pro původní objekt?
sobes.tech AI
Odpověď od AI
Vzor Proxy v jazyce Java funguje jako prostředník mezi klientem a původním objektem. Proxy kontroluje přístup k tomuto objektu, může přidávat dodatečnou logiku před nebo po volání metod originálu, například ukládání do mezipaměti, kontrolu oprávnění, líné načítání nebo zaznamenávání.
Tímto způsobem klient komunikuje s Proxy stejně jako s původním objektem, ale Proxy spravuje volání a může měnit chování bez změny samotného originálu.
Pří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čítání " + filename);
}
public void display() {
System.out.println("Zobrazování " + 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); // líné vytváření
}
realImage.display();
}
}
// Použití:
Image image = new ProxyImage("foto.jpg");
image.display(); // načítání a zobrazení
image.display(); // pouze zobrazení, načítání se neopakuje
V tomto příkladu Proxy kontroluje vytváření a přístup k reálnému objektu, optimalizuje využití zdrojů.