변하지 않는 코드 분리하기
2024. 7. 10. 16:12ㆍ토비의 스프링 6
템플릿(Template) : 어떤 목적을 위해 미리 만들어둔 모양이 있는 틀, 고정된 틀 안에 바꿀 수 있는 부분을 넣어서 사용하도록 만들어진 오브젝트
템플릿 메소드 패턴 : 고정된 틀의 로직을 가진 템플릿 메소드를 슈퍼클래스에 두고, 바뀌는 부분을 서브클래스의 메소드에 두는 구조로 이뤄진다.
public BigDecimal getExRate(String currency) {
String url = "https://open.er-api.com/v6/latest/"+ currency;
return runApiForExRate(url);
}
private static BigDecimal runApiForExRate(String url) {
URI uri;
try {
uri = new URI(url);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
String response;
try{
response = executeApi(uri);
}catch (IOException e){
throw new RuntimeException(e);
}
try {
return extractExRate(response);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
'토비의 스프링 6' 카테고리의 다른 글
| Spring이 제공하는 템플릿 (0) | 2024.07.11 |
|---|---|
| ApiExecutor 콜백과 메소드 주입 (0) | 2024.07.11 |
| 변하는 코드 분리하기 - 메소드 추출 (0) | 2024.07.10 |
| 도메인 오브젝트 테스트 (0) | 2024.07.08 |
| 학습 테스트(Learning Test) (0) | 2024.07.08 |