Шаблон Chain of Responsibility: является ли хорошей практикой иметь взаимозависимые обработчики? - PullRequest
1 голос
/ 17 мая 2010

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

Но я не уверен, является ли это правильным способом использования этого шаблона, поскольку рабочий процесс в значительной степени фиксирован, а обработчики кэша и базы данных зависят от результата возврата следующего шага, чтобы обновить свои записи.

Ответы [ 2 ]

0 голосов
/ 28 августа 2014

Вы можете реализовать простую иерархию наследования вместо цепочки, как эта.

Interface
+getData()
^
|
RemoteWebserviceImpl
^
|
DatabaseImpl
^
|
CacheImpl
0 голосов
/ 17 мая 2010

То, на что вы ссылаетесь, строго говоря, не является цепочкой ответственности. Похоже, вы реализуете кеш. Если вы реализуете кеш, то сценарий, который вы описываете, подойдет. Если вы ищете истинную цепь ответственности, это не так.

...