职责链模式(Chain of Responsibility)

通过为多个对象提供处理请求的机会,避免将请求的发送者耦合到其接收者。 链接接收对象并沿链传递请求,直到对象处理它。

class Request {
  constructor(amount) {
    this.amount = amount;
    console.log("Requested: $" + amount + "\n");
  }

  get(bill) {
    const count = Math.floor(this.amount / bill);
    this.amount -= count * bill;
    console.log("Dispense " + count + " $" + bill + " bills");
    return this;
  }
}
const request = new Request(378);
request.get(100).get(50).get(20).get(10).get(5).get(1);