![](/s/cache/0b/cc/0bcc19c54c96178bd4333130c3e4a50a.png)
0
Fixed
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; }
Answer
![](/s/cache/a6/73/a6734f0835e96bbe2628c5222c7eeee6.png)
Answer
Fixed
Добрый день, Денис.
Спасибо за баг репорт. Я исправил баг немного по-другому, изменив порядок вызовов в клиентском коде.
Middleware middleware = new ThrottlingMiddleware(2); middleware.linkWith(new UserExistsMiddleware()) .linkWith(new RoleCheckMiddleware());
Customer support service by UserEcho
Добрый день, Денис.
Спасибо за баг репорт. Я исправил баг немного по-другому, изменив порядок вызовов в клиентском коде.