Цепочка обязанностей (Chain of Responsibility) — различия между версиями
Admin (обсуждение | вклад) (→Описание) |
Admin (обсуждение | вклад) (→Описание) |
||
Строка 8: | Строка 8: | ||
Имеется цепочка объектов, каждый хранит ссылку на следующий объект (как правило, объект более верхнего уровня) | Имеется цепочка объектов, каждый хранит ссылку на следующий объект (как правило, объект более верхнего уровня) | ||
Запрос перемещается по цепочке объектов вверх пока один из них не обработает этот запрос. | Запрос перемещается по цепочке объектов вверх пока один из них не обработает этот запрос. | ||
− | У объекта, отправившего запрос на обработку, отсутствует | + | У объекта, отправившего запрос на обработку, отсутствует информация о том, какой объект в цепочке обработает запрос. |
Пример: докладная пишется непосредственному начальнику, он либо реагирует на нее, либо передает по иерархии вверх своему непосредственному начальнику и т.д. | Пример: докладная пишется непосредственному начальнику, он либо реагирует на нее, либо передает по иерархии вверх своему непосредственному начальнику и т.д. | ||
+ | |||
+ | === Использование === | ||
+ | Паттерн '''Цепочка обязанностей''' используется если есть более одного объекта, способного обработать запрос, причем, настоящий обработчик неизвестен и должен быть найден автоматически | ||
=== Реализация === | === Реализация === |
Версия 07:57, 1 августа 2014
Другое название
Назначение
Некий запрос должен быть обработан в цепочке взаимосвязанных объектов (список, дерево - движение от листьев к корню). Объект либо обрабатывает запрос, либо передвает по цепочке следующему объекту. Если ни один из объектов не обработал запрос, то может происходить какое-то действие.
Описание
Имеется цепочка объектов, каждый хранит ссылку на следующий объект (как правило, объект более верхнего уровня) Запрос перемещается по цепочке объектов вверх пока один из них не обработает этот запрос. У объекта, отправившего запрос на обработку, отсутствует информация о том, какой объект в цепочке обработает запрос.
Пример: докладная пишется непосредственному начальнику, он либо реагирует на нее, либо передает по иерархии вверх своему непосредственному начальнику и т.д.
Использование
Паттерн Цепочка обязанностей используется если есть более одного объекта, способного обработать запрос, причем, настоящий обработчик неизвестен и должен быть найден автоматически