Jump to content

Шаблон прокси

В компьютерном программировании шаблон прокси является шаблоном проектирования программного обеспечения . Прокси . в самом общем виде — это класс, функционирующий как интерфейс к чему-то другому Прокси-сервер может взаимодействовать с чем угодно: сетевым подключением, большим объектом в памяти, файлом или каким-либо другим ресурсом, который является дорогостоящим или невозможно дублировать. Короче говоря, прокси — это объект-оболочка или агент, который вызывается клиентом для скрытого доступа к реальному обслуживающему объекту. Использование прокси-сервера может просто перенаправляться на реальный объект или обеспечивать дополнительную логику. В прокси-сервере могут быть предоставлены дополнительные функции, например кэширование, когда операции с реальным объектом требуют больших ресурсов, или проверка предварительных условий перед вызовом операций с реальным объектом. Для клиента использование прокси-объекта аналогично использованию реального объекта, поскольку оба реализуют один и тот же интерфейс.

Прокси [1] шаблон проектирования — один из двадцати трех известных Шаблоны проектирования GoF которые описывают, как решать повторяющиеся проблемы проектирования для разработки гибкого и многократно используемого объектно-ориентированного программного обеспечения, то есть объектов, которые легче реализовать, изменить, протестировать и повторно использовать.

Какие проблемы может решить шаблон проектирования «Прокси»? [2]

[ редактировать ]
  • Доступ к объекту должен контролироваться.
  • При доступе к объекту должна быть предусмотрена дополнительная функциональность.

Например, при доступе к конфиденциальным объектам должна быть возможность проверить наличие у клиентов необходимых прав доступа.

Какое решение описывает шаблон проектирования прокси?

[ редактировать ]

Определите отдельный Proxy возразить, что

  • может использоваться вместо другого объекта ( Subject) и
  • реализует дополнительный функционал по контролю доступа к данному субъекту.

Это дает возможность работать через Proxy объект для выполнения дополнительных функций при доступе к субъекту. Например, для проверки прав доступа клиентов, обращающихся к секретному объекту.

Чтобы выступать в качестве замены субъекта, прокси должен реализовать Subject интерфейс.Клиенты не могут определить, работают ли они с субъектом или его прокси.

См. также класс UML и диаграмму последовательности ниже.

Структура

[ редактировать ]

Класс UML и диаграмма последовательности

[ редактировать ]
Пример класса UML и диаграммы последовательности для шаблона проектирования «Прокси». [3]

На приведенной выше UML классов диаграмме тот Proxy класс реализует Subject интерфейс, чтобы он мог служить заменой Subject объекты. Он поддерживает ссылку ( realSubject) к заменяемому объекту ( RealSubject), чтобы он мог пересылать ему запросы( realSubject.operation()).

Диаграмма последовательности показывает взаимодействие во время выполнения: Client объект работает через Proxy возразить, чтоконтролирует доступ к RealSubject объект.В этом примере Proxy пересылает запрос в RealSubject, который выполняет запрос.

Диаграмма классов

[ редактировать ]
Прокси в UML
Прокси в LePUS3 ( легенда )

Возможные сценарии использования

[ редактировать ]

Удаленный прокси

[ редактировать ]

При распределенной объектной коммуникации локальный объект представляет собой удаленный объект (тот, который принадлежит другому адресному пространству). Локальный объект является прокси-сервером для удаленного объекта, а вызов метода локального объекта приводит к удаленному вызову метода удаленного объекта. Примером может служить реализация банкомата , где банкомат может хранить прокси-объекты для банковской информации, существующей на удаленном сервере.

Виртуальный прокси

[ редактировать ]

Вместо сложного или тяжелого объекта в некоторых случаях может оказаться полезным представление скелета. Если базовое изображение имеет огромный размер, его можно представить с помощью виртуального прокси-объекта, загружая реальный объект по требованию.

Прокси защиты

[ редактировать ]

Защитный прокси-сервер может использоваться для управления доступом к ресурсу на основе прав доступа.

См. также

[ редактировать ]
  1. ^ Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес (1994). Шаблоны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования . Эддисон Уэсли. стр. 207 и далее . ISBN  0-201-63361-2 . {{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ «Шаблон проектирования прокси — проблема, решение и применимость» . w3sDesign.com . Проверено 12 августа 2017 г.
  3. ^ «Шаблон проектирования прокси — структура и сотрудничество» . w3sDesign.com . Проверено 12 августа 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 09851fa5e7c4624adca23a6d7884fbd4__1717297800
URL1:https://arc.ask3.ru/arc/aa/09/d4/09851fa5e7c4624adca23a6d7884fbd4.html
Заголовок, (Title) документа по адресу, URL1:
Proxy pattern - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)