0
아래 코드는 Long Parameter List Smell 메서드입니다.매개 변수 그룹을 기존 클래스로 그룹화 할 수 있지만이 매개 변수는 개체에서 수집하지 않는 긴 매개 변수 목록
// Long Parameter List Smell
public void paint (Graphics gr,
double x, double y, double width, double height,
Boolean shouldValidate){.....}
아래의 코드는 상기 냄새를 호출하는 호출 방법이다.
// Caller
public void someMethod(......){
double x = someMethod();
double y = 200;
double width = 100;
double height = width/2;
paint(gr, x, y, width, height, true);
}
우리가 알 수있는 파라미터 이중 X, Y 더블 더블 폭과 직사각형 객체 같은 두 높이 사운드. 이 매개 변수는 개체에서 수집되지 않으므로 전체 개체 유지를 사용할 수 없습니다. 다음 옵션은 매개 변수 개체 소개입니다. 그러나 이미 Java 라이브러리의 클래스 인 Rectangle2D.Double 클래스가 있습니다.
이 매개 변수를 Rectangle2D.Double의 객체에 그룹화해야합니까? 리팩토링되는 코드는 아래와 같습니다. 이런 식으로 리팩토링하는 것이 괜찮 으면. 이러한 유형의 리팩토링은 무엇입니까?
// Long Parameter List Smell
public void paint (Graphics gr,
Rectangle2D.Double rec
Boolean shouldValidate){.....}
// Caller
public void someMethod(......){
double x = someMethod();
double y = 200;
double width = 100;
double height = width/2;
paint(gr,
new Rectangle2D.Double(x, y, width, height),
true);
}