TGViewer
Библиотека джависта | Java, Spring, Maven, Hibernate Библиотека джависта | Java, Spring, Maven, Hibernate @javaproglib · 22K subscribers
Post #7573 2.29K
🔁 Паттерн Proxy

Proxy — структурный паттерн, который подставляет вместо реального объекта его заменитель. Заменитель перехватывает вызовы к оригиналу и может добавлять логику до и после или вместо реального вызова.

Разновидности и их применение

🔹 Виртуальный прокси. Откладывает создание дорогого объекта до первого реального обращения к нему. Ленивая инициализация без изменения клиентского кода.

🔹 Защитный прокси. Проверяет права доступа перед делегированием вызова. Авторизация как отдельный слой, не смешанный с бизнес-логикой.

🔹 Удалённый прокси. Скрывает сетевое взаимодействие. Клиент вызывает метод как локальный, прокси сериализует и отправляет запрос. Основа RPC и gRPC-стабов.

🔹 Кеширующий прокси. Запоминает результат вызова и возвращает его при повторных запросах с теми же параметрами.

Преимущества

1️⃣ Прозрачность для клиента

Прокси реализует тот же интерфейс, что и оригинал. Клиентский код не меняется — он не знает, с чем работает.

2️⃣ Разделение ответственности

Безопасность, кеширование, логирование — каждое в своём прокси. Бизнес-логика оригинального объекта не засорена инфраструктурными деталями.

3️⃣ Управление ресурсами

Виртуальный прокси позволяет работать с тысячами «объектов», реально создавая только те, к которым обращались. Экономия памяти и времени инициализации.

В Spring

Spring AOP — это прокси. @Transactional, @Cacheable, @PreAuthorize — всё это прокси-обёртки, которые Spring генерирует динамически через CGLIB или JDK Dynamic Proxy. Паттерн, который вы используете каждый день, иногда даже не осознавая этого.

══════ Навигация ══════
Вакансии • Задачи • Собесы

🐸 Библиотека джависта

#CoreJava
  • 👍 5
  • 🔥 5
  • ❤ 1
More from @javaproglib
  1. Oct 14, 2026Post #7897
  2. Oct 14, 2026Почему разработчик планирует отдавать больше задач Claude Винсент Шмальбах описал план пер…
  3. Oct 14, 2026🛠 Контейнер запущен, а тест всё равно падает Порт уже открыт, но приложение ещё применяет…
  4. Oct 13, 2026🧠 Почему BigDecimal считает 2.0 и 2.00 разными Что выведут эти две строки? var a = new Bi…
  5. Oct 12, 2026👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефо…
  6. Oct 10, 2026Post #7892
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →