Sobes.tech
Back to questions
Junior — Middle
77

Объясните концепцию прокси и в каких сценариях ее применяют

Answer from AI

sobes.tech AI

Прокси — это объект-заместитель, который контролирует доступ к другому объекту. Он реализует тот же интерфейс, что и оригинальный объект, и может добавлять дополнительное поведение при вызове методов.

Сценарии применения прокси:

  • Ленивое создание (Lazy loading): объект создаётся только при первом обращении.
  • Контроль доступа: проверка прав пользователя перед вызовом метода.
  • Логирование и мониторинг вызовов.
  • Кэширование результатов.
  • Транзакционное управление.

Например, в Java можно использовать динамические прокси для добавления логирования:

InvocationHandler handler = (proxy, method, args) -> {
    System.out.println("Вызов метода: " + method.getName());
    return method.invoke(realObject, args);
};

MyInterface proxyInstance = (MyInterface) Proxy.newProxyInstance(
    realObject.getClass().getClassLoader(),
    realObject.getClass().getInterfaces(),
    handler
);

Таким образом, прокси позволяют гибко расширять поведение объектов без изменения их кода.