Junior — Middle
Kā darbojas Proxy paraugs un kā tas atšķiras no parastajiem objektiem?
sobes.tech AI
Atbilde no AI
Proxy paraugs izveido aizstājēja objektu, kas kontrolē piekļuvi citam objektam, sauktam par reālo subjektu. Proxy var veikt papildu darbības pirms vai pēc piekļuves reālajam objektam, piemēram, slinku inicializāciju, kešatmiņu, piekļuves kontroli vai žurnāla ierakstīšanu.
Atšķirības starp Proxy un parastu objektu:
- Proxy īsteno to pašu saskarni kā reālais objekts, tāpēc to var izmantot tā vietā.
- Proxy pārvalda piekļuvi reālajam objektam, pievienojot papildu loģiku.
- Klients ar Proxy sadarbojas, nezinot par reālo objektu.
Piemērs Java:
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("Ielādē " + filename);
}
public void display() {
System.out.println("Attēlo " + 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); // slinka izveide
}
realImage.display();
}
}
Šeit ProxyImage kontrolē RealImage izveidi un izmantošanu, ielādējot attēlu tikai tad, kad tas ir nepieciešams.