使用 Tom McCabe 的 decision points(決策點)計算函式複雜度。
Step 1.從函式開頭以 1 開始計算。
Step 2.遇到if , while , repeat , for , and , or 類似關鍵字,加 1。
note : switch 每一個case 都要加1。
e.g.
private void exampleCountDecisionPoints() { if((isProcess && isDone) || !isLimit) && numberLines > numberLinesLimit){ } }
if +1
&& + 1
|| + 1
&& +1
total decision points = 5
複雜度對應原則表
0 ~ 5 -> 複雜度低可以接受 6 ~ 10 -> 複雜度中考慮簡化 10up -> 複雜度高必須簡化