Development/Programming
[Refactoring] 여러 겹의 조건문을 감시절로 전환
Gomp
2013. 9. 3. 09:29
조건식은 주로 두 가지 형태를 띤다. 첫째는 어느 한 경로가 정상인지를 검사하는 형태 둘째는 조건식 판별의 한 결과만 정상작동 나머지는 비정상작동이 되는 형태이다.
정상동작이 일부라고 한다면 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();
위의 코드보다 깔끔하고 보기 좋은것 같다.