Назад к вопросам
Junior — Middle
67
Какое назначение у паттерна Proxy в разработке программных решений?
Ответ от нейросети
sobes.tech AI
Паттерн Proxy используется для создания заместителя (представителя) другого объекта, который контролирует доступ к этому объекту. Это позволяет:
- Отложить создание ресурсоёмкого объекта (ленивая инициализация).
- Контролировать доступ (например, проверка прав).
- Логировать вызовы.
- Кэшировать результаты.
В Java 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("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();
}
}
Здесь ProxyImage контролирует создание RealImage и может оптимизировать работу с ним.