代码复杂度降级的几个实例
降低代碼的圈復(fù)雜度
我們可以通過一些代碼重構(gòu)手段來降低代碼的圈復(fù)雜度。
(1)抽象配置
通過抽象配置將復(fù)雜的邏輯判斷進(jìn)行簡化。例如下面的代碼,根據(jù)用戶的選擇項(xiàng)執(zhí)行相應(yīng)的操作,重構(gòu)后降低了代碼復(fù)雜度,并且如果之后有新的選項(xiàng),直接加入配置即可,而不需要再去深入代碼邏輯中進(jìn)行改動(dòng):
(2)單一職責(zé) -> (提煉函數(shù))
函數(shù)應(yīng)該做一件事,做好這件事,只做這一件事。 ————— 代碼整潔之道
關(guān)鍵是如何定義這 “一件事” ,如何將代碼中的邏輯進(jìn)行抽象,有效的提煉函數(shù)有利于降低代碼復(fù)雜度和降低維護(hù)成本。
(3)單一職責(zé) -> (提煉函數(shù))
我們經(jīng)常會(huì)使用一個(gè)控制標(biāo)記來標(biāo)示當(dāng)前程序運(yùn)行到某一狀態(tài),很多場景下,使用 break 和 return 可以代替這些標(biāo)記并降低代碼復(fù)雜度。
(4)用函數(shù)取代參數(shù)
setField 和 getField 函數(shù)就是典型的函數(shù)取代參數(shù),如果么有 setField、getField 函數(shù),我們可能需要一個(gè)很復(fù)雜的 setValue、getValue 來完成屬性賦值操作:
(5)簡化條件判斷 -> 逆向條件
某些復(fù)雜的條件判斷可能逆向思考后會(huì)變的更簡單。
(6)簡化條件判斷 -> 合并條件
將復(fù)雜冗余的條件判斷進(jìn)行合并
(7)簡化條件判斷 -> 提取條件
將復(fù)雜難懂的條件進(jìn)行語義化提取
總結(jié)
以上是生活随笔為你收集整理的代码复杂度降级的几个实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 战争对股市影响 发生战争对于股票会有什么
- 下一篇: actions相互调用并且存在顺序