Вопрос проверяет понимание структурных паттернов и контроля доступа к объектам.
Proxy — это объект-заместитель, который контролирует доступ к другому объекту. Он имеет тот же интерфейс, что и оригинальный объект. Proxy может добавлять дополнительную логику до или после вызова метода. При этом сам объект может оставаться неизменным.
Proxy используется, когда нужен контроль над взаимодействием с объектом.
Proxy — это структурный паттерн, при котором создаётся объект-заместитель для управления доступом к реальному объекту.
Proxy и реальный объект реализуют один и тот же интерфейс.
Перед применением важно понимать основные сценарии.
Ленивая инициализация
Контроль доступа
Кэширование
Логирование
public class ServiceProxy implements Service {
private final Service realService;
public void process() {
// доп. логика
realService.process();
}
}
Proxy широко применяется:
В Spring AOP
В ORM (lazy loading)
В системах безопасности
Proxy позволяет расширять поведение объекта, не изменяя его код, и эффективно управлять доступом к нему.