圈復(fù)雜度(Cyclomatic Complexity)是一種代碼復(fù)雜度的衡量標(biāo)準(zhǔn)断楷。它可以用來衡量一個(gè)模塊判定結(jié)構(gòu)的復(fù)雜程度票腰,數(shù)量上表現(xiàn)為獨(dú)立線性路徑條數(shù),也可理解為覆蓋所有的可能情況最少使用的測試用例數(shù)领突。圈復(fù)雜度大說明程序代碼的判斷邏輯復(fù)雜茅坛,可能質(zhì)量低且難于測試和維護(hù)。程序的可能錯(cuò)誤和高的圈復(fù)雜度有著很大關(guān)系弄喘。
可以直接降低圈復(fù)雜度的9種重構(gòu)技術(shù)(針對(duì)結(jié)構(gòu)化編程)
一粥帚、 Composing Methods(重新組織你的函數(shù))
????1. Extract Method(提煉函數(shù))
????2. Substitute Algorithm(替換你的算法)
二、Simplifying Conditional Expressions(簡化條件表達(dá)式)
????1. Decompose Conditional(分解表達(dá)式)
????2. Consolidate Conditional Expression(合并表達(dá)式)
????3. Consolidate Duplicate Conditional Fragments (合并重復(fù)的條件)
????4. Remove Control Flag(移除控制標(biāo)記)
三限次、Making Method Calls Simpler(簡化函數(shù)調(diào)用)
????1. Separate Query from Modifier(將查詢函數(shù)和修改函數(shù)分離)
????2. PARAMETERIZE Method(令函數(shù)攜帶參數(shù))
????3. Replace Parameter with Explicit Methods(以明確函數(shù)取代參數(shù))
針對(duì)面向?qū)ο缶幊蹋?/p>
Replace Conditional with Polymorphism (以多態(tài)取代條件式)