0
Исправлено
Chain of Responsibility
Здравствуйте, спасибо за отличный сайт!
В Java реализации паттерна "Chain of Responsibility" допущена ошибка в методе:
public Middleware linkWith(Middleware next) {
this.next = next;
return next;
}Таким образом, после построения цепочки, всегда будет вызываться лишь последний элемент. Предлагаю заменить текущую логику на:
public Middleware linkWith(Middleware next) {
if (this.next == null) {
this.next = next;
} else {
this.next.linkWith(next);
}
return this;
}解答
UserEcho 的客户支持
Добрый день, Денис.
Спасибо за баг репорт. Я исправил баг немного по-другому, изменив порядок вызовов в клиентском коде.
Middleware middleware = new ThrottlingMiddleware(2); middleware.linkWith(new UserExistsMiddleware()) .linkWith(new RoleCheckMiddleware());