js利用策略模式優化if else迴圈

2021-10-01 13:53:42 字數 760 閱讀 4580

js程式中最常用的if else迴圈,如果分枝很多的的情況下難免使寫出的程式又臭又長,但是根據需求又必須將這些分支處理,此時稍有經驗的程式設計師可能會想到用switch case優化但是只是僅僅做到利於閱讀,最好的方法是用策略模式進行優化。

例如 有五個物件

obj1 = }…

obj5 =

}然後需要判斷每個物件的名稱執行不同的操作 dosomething1()…dosomething5();

如果用if-else實現

function handle(obj)else if(obj.name == "obj2")else if(obj.name == "obj3")else if(obj.name == "obj4")else if(obj.name == "obj5")

}

用switch case實現:

function handle(obj) 

}

用策略模式定義策略樹實現:

策略樹:

var stats =,

obj2:function(),

obj3:function(),

obj4:function(),

obj5:function()

}

呼叫:

function handle(obj)
以上例子為了便於說明可能不太恰當,但在實際開發中這種思想非常實用。

用工廠模式和策略模式代替繁瑣的if else

過多的if else 和巢狀,會使閱讀 的人很難理解到底是什麼意思。尤其是那些沒有注釋的 其次是可維護性,因為if else特別多,if else是有辦法可以消除掉的,其中比較典型的並且使用廣泛的就是借助策略模式和工廠模式,準確的說是利用這兩個設計模式的思想,徹底消滅 中的if else。傳統用if...

js策略模式

doctype html en utf 8 viewport content width device width,initial scale 1.0 document title form item item label item input item span style head item 使...

表單 驗證 如何利用策略模式優化表單驗證

在做移動端專案開發的時候,經常會遇到各種表單驗證,有時候不同的頁面,驗證規則是一樣的 如圖 之前專案裡的驗證 寫的很凌亂,最近剛好遇到這個模組的功能需要重構,於是對 做了大量的優化,記錄一下如何利用策略模式優化表單驗證的 之前我們的驗證 是這樣寫的,把驗證func寫到乙個公共模組裡面,然後每個方法返...