좋 은 프로 그래 밍 - 속성 정보 가 불필요 하지 않도록 합 니 다.
2004 단어 양호 한 프로 그래 밍
기록 노선 의 데이터 구조의 예 를 보면 한 노선 은 출발점, 종점 과 거리 세 가지 기본 적 인 정보 가 있 고 첫 번 째 디자인 방식 은 다음 과 같다. 각각 세 개의 속성 값 으로 세 개의 값 을 기록한다.
import java.awt.Point;
public class Line {
public Point start;
public Point end;
public double distance;
}
우 리 는 거리 가 다른 출발점 과 종점 에 의 해 제 어 된 것 임 을 알 수 있다. 그들의 변 화 는 거리 값 의 변 화 를 초래 할 수 있 기 때문에 두 번 째 디자인 에서 우 리 는 하나의 방법 으로 거 리 를 기록 하 는 정 보 를 다음 과 같이 고려한다.
import java.awt.Point;
public class Line {
public Point start;
public Point end;
public double distance(){
return start.distance(end);
}
}
이러한 디자인 과 데이터 뱅 크 의 패 러 다 임 원칙 원리 도 마찬가지 입 니 다. (예 를 들 어 개인 정보의 출생 연 도 를 통 해 연령 정 보 를 추산 할 수 있 기 때문에 한 필드 를 더 설계 하여 연령 정 보 를 저장 할 필요 가 없습니다) 그러나 실제 개발 과정 에서 저 희 는 업무 의 편리 함 이나 성능 을 고려 하여 디자인 캐 시 를 고려 하여 계산 결 과 를 기록 할 수 있 습 니 다.세 번 째 디자인 방식 은 다음 과 같다.
import java.awt.Point;
public class Line {
public Point start;
public Point end;
public boolean changed = true;
public double distance;
public Point getStart() {
return start;
}
public void setStart(Point start) {
this.start = start;
changed = true;
}
public Point getEnd() {
return end;
}
public void setEnd(Point end) {
this.end = end;
changed = true;
}
public double distance(){
if(changed){
distance = start.distance(end);
changed = false;
}
return distance;
}
}
위의 예 와 같이 get / set 를 사용 하여 속성 정 보 를 가 져 오고 설정 하 는 것 을 권장 합 니 다. 캐 시 제 어 를 편리 하 게 추가 할 수 있 습 니 다.