Шаблон проектирования "Заместитель" (Proxy) | OTUS >
У этой рекламы есть минус
У этой рекламы есть минус
−10% на курсы со стартом в ноябре. Успейте получить выгоду, 10 числа акция закончится
−10% на курсы со стартом в ноябре. Успейте получить выгоду, 10 числа акция закончится
Выбрать курс

Шаблон проектирования "Заместитель" (Proxy)

Proxy — это структурный паттерн проектирования, предоставляющий объект, который, в свою очередь, контролирует доступ к другому объекту путем перехвата всех вызовов. Также можно сказать, что шаблон "Заместитель" выполняет функцию контейнера. Рассмотрим примеры его реализации и использования.

Но для начала -- случай из жизни. Представьте себе дверь, которую можно открыть лишь картой доступа либо нажатием кнопки.

Главная функциональность двери — это ее открытие, а заместитель, который добавлен поверх (кнопка, карт-ридер), отвечает за безопасность и расширяет функциональность. Иными словами, с помощью Proxy-шаблона класс станет отображать функциональность другого класса.

Для наилучшего понимания перейдем к коду. Итак, существует интерфейс Door и реализация этого интерфейса:

1-1801-ca5f30.png

Также у нас существует заместитель Security, обеспечивающий защиту любых дверей:

2-1801-744f3b.png

Ну а общий пример имплементации выглядит так:

3-1801-f4d0eb.png

Также вам может быть интересен пример имплементации на Java.

По материалам статьи «Design Patterns for Humans».

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Снизили цены на 10 дней
Снизили цены на 10 дней
−10% на все курсы со стартом в ноябре, акция действует до 10 числа. Выбирайте направление — начинайте обучение
−10% на все курсы со стартом в ноябре, акция действует до 10 числа. Выбирайте направление — начинайте обучение