Back to questions
Simbirsoft
Junior — Middle
63
Можете объяснить концепцию паттерна прокси и его назначение в программировании?
Companies where asked
Answer from AI
sobes.tech AI
Паттерн "Прокси" (Proxy) — это структурный шаблон проектирования, который предоставляет объект-заместитель для другого объекта. Прокси контролирует доступ к реальному объекту, позволяя выполнять дополнительные действия при вызове методов.
Назначение прокси:
- Отложенная инициализация (ленивая загрузка).
- Контроль доступа (например, проверка прав).
- Логирование вызовов.
- Кэширование результатов.
- Удалённый доступ (например, в RMI).
Пример на 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("Loading " + filename);
}
public void display() {
System.out.println("Displaying " + 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("photo.jpg");
image.display(); // загрузка и отображение
image.display(); // только отображение
Здесь ProxyImage откладывает загрузку реального изображения до момента первого вызова display().