Junior — Middle
Proxy naqshasi qanday ishlaydi va u oddiy obyektlardan qanday farq qiladi?
sobes.tech AI
AIdan javob
Proxy Pattern нусха объект яратади, укишга рухсат берувчи бошқа объектга, яъни ҳақиқий субъектга, назорат қилади. Proxy, ҳақиқий объектга мурожаат қилишдан олдин ёки кейин қўшимча амаллар бажара олади, масалан, сўнги инициализация, кешлаш, киришни назорат қилиш ёки журналга олиш.
Proxy ва оддий объект ўртасидаги фарқлар:
- Proxy, ҳақиқий объект билан бир хил интерфейсни амалга оширади, шунинг учун унинг ўрнига ишлатилиши мумкин.
- Proxy, ҳақиқий объектга киришни бошқаради ва қўшимча логика қўшади.
- Мижоз, ҳақиқий объектни билмай, Proxy билан ўзаро алоқа қилади.
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("Юкланмоқда " + 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();
}
}
Бу ерда, ProxyImage RealImage яратилишини ва фойдаланишини назорат қилади, расмни фақат зарур бўлганда юклайди.