日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS设计模式(2)策略模式

發布時間:2023/12/2 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS设计模式(2)策略模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是策略模式?

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

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

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

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

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

缺點:?1、策略類會增多。 2、所有策略類都需要對外暴露。

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

?

JavaScript中的策略模式

觀察如下獲取年終獎的 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 中,策略模式的使用常常隱藏在高階函數中,稍微變換下上述 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

?


更多專業前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的JS设计模式(2)策略模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。