최근부터 Eclipse에 SonarLint를 사용 하고 있으며 많은 도움이되었습니다. 그러나 그것은 순환 복잡성에 대한 의문을 제기했습니다.
SonarLint는 CC 10을 수용 할 수있는 것으로 간주하며, 5 또는 6 개 정도의 경우가 있습니다. 이러한 부분은 값이 다른 변수에 의존하는 맵퍼와 관련이 있습니다 (예 :
- 필드 A는 문자열 sA에 의존합니다.
- 필드 B는 문자열 sB에 의존합니다.
- 필드 C는 문자열 sC에 의존합니다.
- 등 ...
if
각 분야마다 다른 선택을 할 수 없습니다 . 이것은 (다행스럽게도) 나의 선택이 아니라, 스스로 바꿀 수없는 기존의 복잡한 시스템입니다.
내 질문의 핵심은 하나의 방법 으로 너무 높은 CC 를 가지지 않는 것이 왜 그렇게 중요한가 ? 복잡성을 줄이기 위해 하나 이상의 하위 방법으로 일부 조건을 이동하면 전체 기능의 비용이 감소하지 않고 문제를 다른 곳으로 이동시키는 것 같습니다.
(있는 경우 작은 실수에 대해 죄송합니다).
편집하다
내 질문은 전역 순환 복잡성에 관한 것이 아니라 단일 방법 복잡성 및 방법 분할에만 관한 것입니다 (정확하게 의미하는 바를 설명하는 데 어려움이 있습니다. 나는 여전히 모든 수퍼 메소드를 실행하여 알고리즘에 복잡성을 추가하는 '슈퍼 메소드'에 속하는 경우 조건을 더 작은 메소드로 나눌 수있는 이유를 묻습니다.
그러나 ( 반 패턴에 관한) 두 번째 링크 는 큰 도움이됩니다.