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

Шаблон проектирования "Заместитель" (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 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто