Junior — Middle
Hogyan működik a Proxy minta közvetítőként az eredeti objektum számára?
sobes.tech MI
Válasz az MI-től
A Proxy minta Java-ban közvetítőként működik a kliens és az eredeti objektum között. A Proxy ellenőrzi az hozzáférést ehhez az objektumhoz, további logikát adhat hozzá az eredeti metódusok hívása előtt vagy után, például gyorsítótárazás, hozzáférési jogok ellenőrzése, késleltetett inicializálás vagy naplózás.
Így a kliens a Proxy-val ugyanúgy lép kapcsolatba, mint az eredeti objektummal, de a Proxy kezeli a hívásokat, és módosíthatja a viselkedést anélkül, hogy az eredeti objektumot megváltoztatná.
Példa:
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("Betöltés " + filename);
}
public void display() {
System.out.println("Képernyőre vetítés " + 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); // késleltetett létrehozás
}
realImage.display();
}
}
// Használat:
Image image = new ProxyImage("foto.jpg");
image.display(); // betöltés és megjelenítés
image.display(); // csak megjelenítés, újra betöltés nélkül
Ebben a példában a Proxy ellenőrzi a valódi objektum létrehozását és hozzáférését, optimalizálva az erőforrások felhasználását.