這篇文章帶給大家的內容是關於js設計模式:什麼是策略模式? js策略模式的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
定義:根據不同參數可以命中不同的策略
主要解決:在有多種演算法相似的情況下,使用if...else 所帶來的複雜和難以維護。
策略模式何時使用:有許多種情況,而區分它們的只是他們直接的行為。
如何解決:透過一個hash對象,來映射不同的策略。
js策略模式優點: 1、演算法可以自由切換。 2.避免使用多重條件判斷。 3.擴展性、復用性良好。
js策略模式缺點: 1、策略類別會增加。 2、所有策略類別都需要對外暴露。
策略模式使用情境: 1.需要動態地根據行為改變運作方法。 2.為了減少程式碼,同時為了讓程式碼有更好的可讀性。 3.需要對策略進行統一管理。
觀察如下取得年終獎的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設計模式:什麼是策略模式? js策略模式的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!