Обзор паттернов проектирования

       

Цепочка обязанностей (Chain of Responsibility) - GoF


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

Цепочка обязанностей (Chain of Responsibility) - GoF

Преимущества Ослабляется связанность (объект не обязан "знать", кто именно обработает его запрос).
Недостатки Нет гарантий, что запрос будет обработан, поскольку он не имеет явного получателя.



Содержание раздела