WebApiExRateProvider
에서 API를 특정 기술을 이용해서 실행하고 그 응답 결과를 돌려주는 메서드를 인터페이스와 인터페이스를 구현한 클래스로 독립
classDiagram
direction BT
class ApiExcutor {
<<Interface>>
+ execute(URI) String
}
class SimpleApiExecutor {
+ SimpleApiExecutor()
+ execute(URI) String
}
class WebApiExRateProvider {
+ WebApiExRateProvider()
- extractExRate(String) BigDecimal
- runApiForExRate(String) BigDecimal
+ getExRate(String) BigDecimal
}
SimpleApiExecutor ..> ApiExcutor
WebApiExRateProvider ..> SimpleApiExecutor : «create»
이처럼 분리하기만 한다고 해서 템플릿을 사용하는 장점을 누릴 수 없음