Posúva požiadavku po reťazi spracovateľov, kým ju niekto nevyrieši.
class Approver { constructor() { this.next = null; } handle(request) { if (this.canApprove(request)) { this.approve(request); return; } if (this.next !== null) { this.next.handle(request); } }} class Manager extends Approver { canApprove(request) { return request.amount <= 1000; }} class Director extends Approver { canApprove(request) { return request.amount <= 10000; }} class Board extends Approver { canApprove(request) { return true; }} const manager = new Manager();manager.next = new Director();manager.next.next = new Board(); manager.handle({ amount: 500 });manager.handle({ amount: 8000 });manager.handle({ amount: 200000 });