Шаблон перехватчика

В области разработки программного обеспечения шаблон перехватчика — это шаблон проектирования программного обеспечения , который используется, когда программные системы или платформы хотят предложить способ изменить или расширить свой обычный цикл обработки. Например, (упрощенная) типичная последовательность обработки веб-сервера заключается в получении URI от браузера, сопоставлении его с файлом на диске, открытии файла и отправке его содержимого в браузер. Любой из этих шагов можно заменить или изменить, например, заменив способ сопоставления URI с именами файлов или вставив новый шаг, обрабатывающий содержимое файлов.
Ключевые аспекты шаблона заключаются в том, что изменения прозрачны и используются автоматически . По сути, остальная часть системы не должна знать, что что-то было добавлено или изменено, и может продолжать работать как прежде. Чтобы облегчить это, должен быть реализован предопределенный интерфейс какой-то механизм диспетчеризации для расширения, требуется объекты контекста , в котором регистрируются перехватчики (это может быть динамический во время выполнения или статический, например, через файлы конфигурации) и предоставляются , которые позволяют доступ к внутреннему состоянию фреймворка. [1]
Использование и контекст
[ редактировать ]Типичными пользователями этого шаблона являются веб-серверы. [2] (как уже говорилось выше), объект- [3] и промежуточное программное обеспечение, ориентированное на сообщения [4]
Примером реализации этого шаблона является интерфейс javax.servlet.Filter , который является частью платформы Java Enterprise Edition .
Аспектно-ориентированное программирование (АОП) также может использоваться в некоторых ситуациях для обеспечения возможностей перехватчика, хотя АОП не использует обычно определенные элементы. [ нужны разъяснения ] для шаблона перехватчика.
Ссылки
[ редактировать ]- ^ «Шмидт, Сталь, Ронерт и Бушманн: «Шаблонно-ориентированная архитектура программного обеспечения, том 2: шаблоны для параллельных и сетевых объектов», стр. 109–140, апрель 2001 г.» . Архивировано из оригинала 23 декабря 2017 г. Проверено 24 ноября 2009 г.
- ^ Apache Software Foundation: Справочник по перехватчикам каналов Tomcat 6.0, по состоянию на 24 ноября 2009 г.
- ^ OMG, «CORBA v3.1, Часть I: Интерфейсы», Глава 16 «Портативные перехватчики», январь 2008 г.
- ^ «Э. Карри, Д. Чемберс и Дж. Лайонс, «Расширение промежуточного программного обеспечения, ориентированного на сообщения, с использованием перехвата», представлено на Третьем международном семинаре по распределенным системам, основанным на событиях (DEBS '04), ICSE '04, Эдинбург, Шотландия, Великобритания. , 2004» (PDF) . Архивировано из оригинала (PDF) 26 июля 2011 г. Проверено 24 ноября 2009 г.