Проблема | Запрос должен быть обработан несколькими объектами. |
Рекомендации | Логично использовать данный паттерн, если имеется более одного объекта, способного обработать запрос и обработчик заранее неизвестен (и должен быть найден автоматически) или если весь набор обьектов, которые способны обработать запрос, должен задаваться автоматически. |
Решение | Связать объекты - получатели запроса в цепочку и передать запрос вдоль этой цепочки, пока он не будет обработан. "Обработчик" определяет интерфейс для обработки запросов, и, возможно, реализует связь с преемником, "КонкретныйОбработчик" обрабатывает запрос, за который отвечает, имеет доступ к своему преемнику ("КонкретныйОбработчик" направляет запрос к своему преемнику, если не может обработать запрос сам.
|
|
Преимущества | Ослабляется связанность (объект не обязан "знать", кто именно обработает его запрос). |
Недостатки | Нет гарантий, что запрос будет обработан, поскольку он не имеет явного получателя. |