조건식은 주로 두 가지 형태를 띤다. 첫째는 어느 한 경로가 정상인지를 검사하는 형태 둘째는 조건식 판별의 한 결과만 정상작동 나머지는 비정상작동이 되는 형태이다.
정상동작이 일부라고 한다면 if절과 else절로 구성된 조건문을 사용하고 조건이 특이한 조건이라면 그 조건을 검사해서 조건이 true 일때 반환하자 이런 식의 검사를 감시절 guard clause 이라고 한다.
if (i_isDead) {
result = deadAmount();
} else {
if (_isSeparated) {
result = separatedAmount();
} else {
if (isRetired) {
result = retiredAmount();
} else {
result = normalPayAmount();
}
}
}
위와 같이 if문과 else문으로 된 코드를 조건이 맞을 경우 바로 반환하는 감시절로 전환을 해보자
if (_isDead) return deadAmount();
if (_isSeparated) return separatedAmount();
if (isRetired) return retiredAmount();
return normalPayAmount();
위의 코드보다 깔끔하고 보기 좋은것 같다.
'Development > Programming' 카테고리의 다른 글
[Refactoring] Null 검사를 Null 객체에 위임 하자 (0) | 2013.09.04 |
---|---|
[Refactoring] 조건문을 재정의로 전환 (0) | 2013.09.04 |
[Refactoring] 제어 플래그 제거 (0) | 2013.09.03 |
[Refactoring] 조건문의 공통 실행 코드 빼내기 (0) | 2013.08.30 |
[Refactoring] 중복 조건식 통합 (0) | 2013.08.30 |