首頁  >  文章  >  web前端  >  js設計模式:什麼是策略模式? js策略模式的介紹

js設計模式:什麼是策略模式? js策略模式的介紹

不言
不言原創
2018-08-17 16:05:061811瀏覽

這篇文章帶給大家的內容是關於js設計模式:什麼是策略模式? js策略模式的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

什麼是策略模式?

定義:根據不同參數可以命中不同的策略

主要解決:在有多種演算法相似的情況下,使用if...else 所帶來的複雜和難以維護。

策略模式何時使用:有許多種情況,而區分它們的只是他們直接的行為。

如何解決:透過一個hash對象,來映射不同的策略。

js策略模式優點: 1、演算法可以自由切換。 2.避免使用多重條件判斷。 3.擴展性、復用性良好。

js策略模式缺點: 1、策略類別會增加。 2、所有策略類別都需要對外暴露。

策略模式使用情境: 1.需要動態地根據行為改變運作方法。 2.為了減少程式碼,同時為了讓程式碼有更好的可讀性。 3.需要對策略進行統一管理。

js中的策略模式

觀察如下取得年終獎的demo,根據不同的參數(level)獲得不同策略方法(規則),這是策略模式在JS 比較經典的運用之一。

 const strategy = {
  'S': function(salary) {
    return salary * 4
  },
  'A': function(salary) {
    return salary * 3
  },
  'B': function(salary) {
    return salary * 2
  }
}

const calculateBonus = function(level, salary) {
  return strategy[level](salary)
}

calculateBonus('A', 10000) // 30000

在函數是一等公民的JS 中,js策略模式的使用常常隱藏在高階函數中,稍微變換下上述demo 的形式如下,可以發現我們平時已經在使用它了,恭喜我們又掌握了一種設計模式。

const S = function(salary) {
  return salary * 4
}

const A = function(salary) {
  return salary * 3
}

const B = function(salary) {
  return salary * 2
}

const calculateBonus = function(func, salary) {
  return func(salary)
}

calculateBonus(A, 10000) // 30000

相關推薦:

 JS設計模式之代理模式詳解

php設計模式之單例模式程式碼,php設計模式

以上是js設計模式:什麼是策略模式? js策略模式的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn