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