'리팩토링 긴 매개변수 연습문제'에 해당되는 글 1건

  1. 2008.10.01 [rwb] 긴 매개변수 리스트
A. 위의 각 선언에서, 하나의 새로운 객체로 묶을 만함 매개변수 군이 있는가?
public void paintComponent(Graphics g, 
Component c, Container p, int x, int y, int w, int h, boolean shouldValidate)
-> int x, int y, int w, int h -> x, y, w, h 좌표의 정보를 가지고 있는 새로운 객체
public void setRangeProperties(int newValue, int newExtent, int newMin, int newMax,
boolean adjusting)
-> 글쎄.. ->int newValue, int newExtent -> 별도의 Range로 묶을만 하다.
public static int showConfirmDialog(Component parentComponent, 
Object message, String title, int optionType, int messageType, Icon icon)
-> 글쎄.. -> 뭐 없는 듯함.
public abstract boolean drawImage(Image img, 
int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, 
Color bgcolor, ImageObserver observer)
-> int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2
  각 x, y값을의 변화를 짝지어서 .
B. 위의 시그너처들에는 매개변수가 왜 그렇게 많을까?
매개변수가 많은 것은 클래스를 좀더 일반적으로 만들고자 하는 의도의 영향으로 보인다.
즉 이 클래스가 다루는 모든 것을 전달하려고 하다 보니 매개변수가 많아진 것 같다. 
그래픽 같은 것들은 상태가 없는 경우가 많으므로, 매개변수를 여러 개 사용하는 것도 도움이 된다.
C. JTable 선언(이 장의 앞에 있는 연습문제 5)을 다시 살펴보자. 여기에서 어떤 매개변수 군이 보이는가?
Dimension, KeyStroke 등 여러가지 정보를 가진 객체가 매개변수로 넘어 가는 듯하다.
-> 행과 열이 많다. 일종의 locator를 사용하면 이 객체가 더 간단해 지지 않을까 싶다.
     그렇게 하면 선택이 간단해지고, 두 행에 걸친 셀과 같은 문제에 대처 할 수 있을 것이다. 

신고
Posted by 영겁회귀

티스토리 툴바