Назад к вопросам
Junior — Middle
58
Можешь привести пример использования паттерна Proxy в программировании?
Ответ от нейросети
sobes.tech AI
Паттерн 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("Loading " + filename);
}
@Override
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;
}
@Override
public void display() {
if (realImage == null) {
realImage = new RealImage(filename); // ленивое создание
}
realImage.display();
}
}
// Использование
public class ProxyPatternDemo {
public static void main(String[] args) {
Image image = new ProxyImage("test_image.jpg");
// Изображение загружается с диска только при первом вызове display
image.display();
image.display();
}
}
В этом примере ProxyImage контролирует создание и доступ к RealImage, загружая изображение с диска только при необходимости (ленивая загрузка). Это экономит ресурсы, если изображение не используется сразу.