플래스(flag)란 ‘깃발’을 의미하지만 프로그래밍에서는 ‘상태를 기록하고 처리의 흐름을 제어하기 위한 boolean형 변수’를 의미한다. 제어 플래그가 반드시 나쁜 것은 아니다. 프로그램에 상태를 기록하는 것은 필요하다. 하지만 제어 플래그를 지나치게 많이 사용하면 처리의 흐름을 이해하기 어려워지므로 프로그램 전체를 이해하기 힘들어지는 위험성이 있다. 제어 플래그 삭제 리팩토링은 플래그를 없애 프로그램을 읽기 쉽게 만들며 제어 플래스 대신 break, countinue, return 등을 사용해 처리의 흐름을 제어한다.
제어 플래그가 있는 프로그램 코드
boolean flag = true;
while (flag) {
if (condition) { flag = false; }
else {}
}
수정한 프로그램 코드
while (true) {
if (condition) { break; }
else {}
}
'프로그램 아키텍쳐 > Refactoring' 카테고리의 다른 글
메소드 추출(Extract Method)와 메소드 이름 변경(Rename Method) (0) | 2010.12.09 |
---|---|
Null 객체의 도입(Introduce Null Object) (0) | 2010.12.09 |
설명용 변수의 도입(Introduce Explaining Variable) (0) | 2010.12.09 |
정수의 의존관계 (0) | 2010.12.09 |
매직넘버를 심볼릭 정수로 치환하기 (0) | 2010.12.09 |