본문 바로가기

Development/Programming

[Refactoring] 매개변수를 메서드로 전환

매개변수로 전달된 값에 따라 메서드가 다른 코드로 실행할땐 그 매개변수로 전달될 수 있는 모든 값에 대응하는 메서드를 각각 작성하자.


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. 예시가 적절했는지는 모르겠지만.. 이런 비슷한 경우에는 아주 유용할듯하다.