객체 지향의 핵심 중의 핵심은 캡슐화에 있다. 캡슐화는 자세한 내부 구현을 외부에 드러내지 않고 숨기는 것이다. 캡슐화를 하게 되면 내부에 데이터를 어떻게 저장하는 지, 그 데이터를 어떻게 처리하는 지, 또는 특정 기능을 어떻게 제공하는 지에 대한 내용은 드러내지 않는다. 단지, 객체가 어떤 기능을 제공하는 지만 공유하게 된다.
당신이 원하는 데이터가 무엇입니까? 우리가 당신에게 전달할 데이터는 Time 객체 또는 기본 타입으로 정의할 수 있습니다.
StopWatch 보다 더 좋은 방법은 StopWatch.measure(함수 or 테스트 케이스 객체) > AOP?
public class StopWatch {
private long startTime;
private long stopTime;
public void start() {
startTime = System.currentTimeMillis();
}
public void stop() {
stopTime = System.currentTimeMillis();
}
public Time getElapsedTime() {
return new Time(stopTime - startTime);
}
}
public class Time {
private long t;
public Time(long t) {
this.t = t;
}
public long getMilliTime() {
return t / 1000000L;
}
public long getNanoTime() {
return t;
}
// 필요에 따라 메소드를 추가하므로 코드의 변경을 최소화 할 수 있다.
public double getSecondTime() {
return (double)t / (double)1000000000;
}
}
StopWatch stopWatch = new StopWatch();
stopWatch.start();
/*
* 측정할 코드 부분
*/
stopWatch.stop();
Time time = stopWatch.getElapsedTime();
// time.getMilliTime() 사용하여 시간을 표현
StopWatch 라는 클래스의 내부 구조는 알 필요가 없습니다. 당신이 원하는 데이터가 무엇입니까? 우리가 당신에게 전달할 데이터는 Time 객체 또는 기본 타입으로 정의할 수 있습니다.
StopWatch 보다 더 좋은 방법은 StopWatch.measure(함수 or 테스트 케이스 객체) > AOP?
'Java' 카테고리의 다른 글
Javadoc 사용법 (0) | 2014.12.31 |
---|---|
Java 내부클래스(Inner Class) (0) | 2014.12.24 |
Java Class 접근제한자 (0) | 2014.12.23 |
Java 라이브러리 사용 (0) | 2014.12.18 |
Java 다형성 - 인터페이스 & 상속 (0) | 2014.12.18 |