Ответ 1
Идея прохода следующего по мне не имеет смысла. Поэтому я хочу цепочку:
A - B - C - D
Как C знает о D? Если это в коде для C, то любое изменение в цепочке будет огромной проблемой для реализации.
Цепочка должна либо следовать другому пути, который уже существует, как, например, респонденты, когда они просто пробуждают запросы на помощь каждому своему соответствующему родителю (пример в книге "Банда четырех" ), или вам нужно построить цепочка, поэтому в нижней части секции в Go4 они упоминают составной паттерн как законопослушный соучастник.
Обратите также внимание на то, что одной из основных причин для выполнения Цепочки Ответственности является то, что типы, которые могут работать с элементом, различны. Что делает его реализацию с идеальным интерфейсом в Java.
Чтобы ответить на ваш основной вопрос: преимущество использования Цепочки Ответственности в этом случае - в два раза: 1. вы не делаете объект бога, который знает обо всех вещах, которые когда-либо могли бы достичь цели (успешное построение политика) и 2. вам не нужно вводить много уродливого проверяющего кода, чтобы увидеть, когда вы достигли конечной точки, потому что тот, кто его обрабатывает, не называя своего преемника, будет запрашивать возврат готового элемента.