🔖 오늘 읽은 범위 : 10장, 클래스
충분히 작을까?
public class SuperDashboard extends JFrame implements MaetaDataUser {
public Component getLastFocusedComponent()
public void setLastFocusedComponent()
public int getMajorVersionNumber()
public int getMinorVersionNumber()
public int getBuildNumber()
}
SuperDashboard
는 메서드 수가 작음에도 불구하고 책임이 너무 많다.SuperDashboard
를 변경할 이유?SuperDashboard
는 소프트웨어 버전 정보를 추적한다. 그런데 버전 소프트웨어를 출시할 때마다 달라진다.SuperDashboard
는 자바 스윙 컴포넌트를 관리한다. 즉, 스윙 코드를 변경할 때마다 버전 번호가 달라진다.public class Version {
public int getMajorVersionNumber( )
public int getMinorVersionNumber()
public int getBuildNumber()
}
SuperDashboard
에서 버전 정보를 다루는 메서드 세 개를 따로 빼내 Version 라는 독자적인 클래스를 만든다.인스턴스 변수가 거의 모든 메서드에서 사용된다.
public class Stack {
private int topOfStack = 0;
List<Integer> elements = new Linkedlist<Integer>();
public int size() {
return topOfStack;
}
public void push(int element) {
topOfStack++;
elements.add(element);
}
public int pop() throws PoppedWhenEmpty {
if (topOfStack = 0){
throw new PoppedWhenEmpty();
}
int element = elements.get(-topOfStack);
elements.remove(topOfStack);
return element;
}