매개변수로 전달된 값에 따라 메서드가 다른 코드로 실행할땐 그 매개변수로 전달될 수 있는 모든 값에 대응하는 메서드를 각각 작성하자.
void setValue (String name, int value) {
if (name.equals("height")) {
_height = value;
return;
}
if (name.equals("width")) {
_width = value;
return;
}
Assert.shouldNeverReachHere();
}
위의 코드를 아래로 변환시킨다.
void setHeight (int value) {
_height = value;
}
void setWidth (int arg) {
_width = arg;
}
이렇게 만들면 조건문이 없어지기 때문에 코드가 간결해지고 컴파일 할때 검사가 된다는 장점이 있다.
Ps. 예시가 적절했는지는 모르겠지만.. 이런 비슷한 경우에는 아주 유용할듯하다.
'Development > Programming' 카테고리의 다른 글
[Refactoring] 매개변수 세트를 메서드로 전환 (0) | 2013.09.13 |
---|---|
[Refactoring] 객체를 통째로 전달 (0) | 2013.09.12 |
[Refactoring] 메서드를 매개변수로 전환 (0) | 2013.09.10 |
[Refactoring] 상태 변경 메서드와 값 반환 메서드를 분리 (0) | 2013.09.09 |
[Refactoring] 메소드명 변경 (0) | 2013.09.09 |