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