3 подписчика
Вопрос 4. Proxy паттерн. #java #pattern
Proxy. Прокси выполняет роль агента который находится на полпути к целевому объекту и принимает запросы от клиента.
Целевой объект получает и исполняет запросы уже от прокси. Поэтому целевой объект может фокусироваться только на своих задачах, а дополнительный функционал делегирует прокси.
Пример из жизни Вы - Агент по недвижимости - Хозяин квартиры.
Цели прокси:
1. Контроль доступа к целевым объектам
2. Наделение целевого объекта дополнительным функционалом
Proxy создаются через прокси-паттерн, с использованием общего с цлевым объектом интерфейса.
Чтобы создать прокси нужны три шага:
1. Имплементируем прокси от того же интерфейса что и целевой класс.
2. Через конструктор прокси-класса сохраняем целевой класс
3. В методах прокси-класса - выполняем доп логику и вызываем метод целевого класса или наоборот.
Преимущества прокси:
1. Open-closed принцип - целевой класс открыт для расширения, но закрыт для изменений
2. Single responsibility - каждый класс отвечает за свои задачи
Недостатки:
1. возрастает сложность кода
2. дублирование кода - требуется имплементировать интерфейс целиком.
Последнее решается JDK dynamic proxy, но об этом позднее.
Около минуты
24 марта 2024