В перехватчиках Struts2 реализована цепочка ответственности? - PullRequest
1 голос
/ 13 декабря 2011

Могу ли я сказать, что перехватчики Struts 2 могут быть типичным примером для Цепочка ответственности ?

Диспетчер сервлетов отправляет запрос и группа перехватчиков обрабатывает запрос на пути к действию. Запрос может пройти через весь перехватчик или в какой-то момент разорвет цепочку.

Ответы [ 2 ]

3 голосов
/ 14 декабря 2011

Я бы сказал, что это зависит от вашего определения.

Это цепочка ответственности в том смысле, что каждый перехватчик может просматривать запрос и его возможный обработчик, изменяя либо и замыкать, либо изменять запрособработка.

Не в том смысле, что перехватчик не является предполагаемым местом назначения запроса - действия (которые реализуют шаблон команды).

Я бы сказал, что подходит для Struts 1.3более традиционное определение CoR, но это больше вопрос терминологии.Команды S1.3 по-прежнему вращаются вокруг запросов предварительной подготовки - это гибкая реализация старого монолитного процессора запросов.

Так что да и нет.Или, может быть.

1 голос
/ 13 декабря 2011

Я сомневаюсь в этом.Для меня шаблон «Цепочка ответственности» подразумевает иерархию возможных обработчиков, так что один из них либо обрабатывает (и «потребляет») объект / команду ИЛИ делегирует его «вышестоящему».В отличие от этого, цепочка перехватчиков struts2 не является иерархической (порядок может иметь значение, но это все), и обычно каждый перехватчик делает что-то (больше похожее на «украшение» или «наблюдение», чем на «обработку») с запросомИ передает его следующему перехватчику.Нельзя сказать, что «перехватчик X обработал запрос», реальный обработчик - это действие struts2.

Концептуально перехватчики Struts2 очень похожи на фильтры в .2.3 Сервлеты API .И я не думаю, что фильтры вписываются в шаблон «Цепочка ответственности».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...