」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JavaScript 設計模式 - 行為 - 策略

JavaScript 設計模式 - 行為 - 策略

發佈於2024-11-01
瀏覽:508

JavaScript Design Patterns - Behavioral - Strategy

策略模式定義了一系列演算法,封裝了每個演算法,並使它們可以互換。

在此範例中,我們有一組可應用於購物車的折扣。我們可以傳遞將應用於建構函數的函數,並以這種方式更改折扣金額。

class ShoppingCart {
  constructor(discount) {
    this.discount = discount;
    this.amount = 0;
  }

  checkout() {
    return this.discount(this.amount);
  }

  setAmount(amount) {
    this.amount = amount;
  }
}

function guest(amount) {
  return amount;
}

function regular(amount) {
  return amount * 0.9;
}

function premium(amount) {
  return amount * 0.8;
}

export { ShoppingCart, guest, regular, premium };

完整的例子在這裡? https://stackblitz.com/edit/vitejs-vite-tygwh3?file=strategy.js

結論

當您有許多類似的類,僅在執行某些行為的方式上有所不同時,請使用此模式。


希望您覺得它有幫助。感謝您的閱讀。 ?

讓我們聯絡吧!你可以在以下位置找到我:

  • 中: https://medium.com/@nhannguyendevjs/
  • 開發:https://dev.to/nhannguyendevjs/
  • Hashnode:https://nhannguyen.hashnode.dev/
  • Linkedin: https://www.linkedin.com/in/nhannguyendevjs/
  • X(原 Twitter):https://twitter.com/nhannguyendevjs/
  • 請我喝杯咖啡: https://www.buymeacoffee.com/nhannguyendevjs
版本聲明 本文轉載於:https://dev.to/nhannguyendevjs/javascript-design-patterns-behavioral-strategy-152d?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3