Я реализую цепочку ответственности.
У меня разные политики, которые можно комбинировать в списке, и у меня есть Процессор, который обрабатывает список политик. Каждая политика может обрабатывать CustomInput и может выбирать, нужно ли обрабатывать остальные политики.
interface Policy {
public boolean process(CustomInput input);
}
interface Processor {
public void process(List<Policy> policies, CustomInput input)
}
Я собирался внедрить Процессор, перебирающий список политик и проверяющий логический результат каждого из них, чтобы узнать, продолжать ли остальные политики.
Мой коллега предложил передать следующую Политику каждой Политике и позволить им называть (или нет) следующий (например, FilterChain).
Мой вопрос следующий:
Есть ли какие-либо преимущества, которые я не вижу во втором решении (передавая следующую политику для текущей обработки), за цикл по каждой политике и проверку ее результата?