출처 : 1400페이지짜리 '토비의 스프링' 서적
간단한 파일 입출력 리펙토링 과정을 보여준다.우선 기본적으로 알아야 하는 건 JUnit 방법이다..
검색해보면 금방 알수 있으므로 해보삼^^
실제 계산하는 Calculator.java
package springbook.learningtest.template;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Calculator {
public Integer calcSum(String filepath) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(filepath));
int sum = 0;
String line = null;
while( (line=br.readLine())!=null ){
sum += Integer.parseInt(line);
}
br.close();
return sum;
}
}
이걸 이용하는 구현 클래스는 CalcSumTest.java
여기서 빨간부분을 주의해서 보도록..
package springbook.learningtest.template;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.io.IOException;
import org.junit.Test;
public class CalcSumTest {
@Test
public void sumOfNumber() throws IOException{
Calculator calculator = new Calculator();
int sum = calculator.calcSum(getClass().getResource("numbers.txt").getPath());
assertThat(sum,is(10));
}
}
여기서 문제점은 try/catch/finally를 안넣어서 중간에 예외가 발생하면 자원반납을 안해줘서 문제가 됨.
그래서 2단계에선 묶어줌..
'스프링프레임워크공부중 > 1부 템플릿 패턴 따라잡기' 카테고리의 다른 글
마지막 5단계 제네릭을 이용한 팩토링 (0) | 2010.12.18 |
---|---|
4단계 템플릿/콜백 패턴으로 재설계하기 (0) | 2010.12.18 |
3단계 템플릿/콜백 패턴으로 인한 중복 제거 단계 (0) | 2010.12.18 |
2단계 자원반납 팩토링 (0) | 2010.12.18 |