Junior — Middle
Kako obrazac Proxy deluje kao posrednik za originalni objekat?
sobes.tech АИ
Одговор од АИ
Модел Proxy у Јави делује као посредник између клијента и оригиналног објекта. Proxy контролише приступ том објекту, може додати додатну логику пре или после позива метода оригинала, као што су кеширање, провера права приступа, лениво иницирање или логовање.
На овај начин, клијент комуницира са Proxy-јем као да је то оригинални објекат, али Proxy управља позивима и може мењати понашање без измене самог оригиналног објекта.
Пример:
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("Учитавање " + filename);
}
public void display() {
System.out.println("Приказ " + 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); // лениво креирање
}
realImage.display();
}
}
// Коришћење:
Image image = new ProxyImage("foto.jpg");
image.display(); // учитавање и приказ
image.display(); // само приказ, без поновног учитавања
У овом примеру, Proxy контролише креирање и приступ реалном објекту, оптимизујући коришћење ресурса.