본문 바로가기

개인공부/디자인패턴

템플릿 콜백 패턴

반응형

https://redbinalgorithm.tistory.com/721

 

전략 패턴

https://redbinalgorithm.tistory.com/720 템플릿 메서드 패턴 기본 로직 템플릿 메서드 패턴은 여러 반복되는 메서드들을 줄여 줄 수 있는 패턴이다. /// 고정로직 /// /// 비즈니스 로직 /// /// 고정로직 ///..

redbinalgorithm.tistory.com

 

이전에는 전략 패턴에 대해서 배웠다. Interface로 설계한 전략 아래 다향한 전략을 바꿔가면서 Context에서 호출하면서 사용한다.

 

이번에는 템플릿 콜백 패턴에 대해서 배워보겠다. 템플릿 콜백 패턴은 전략패턴과 다를게 없지만 DI(Dependency injection) 의존성 주입에서 사용하는 특별한 전략 패턴입니다.

 

스프링은 이러한 템플릿 콜백 패턴을 사용해서 여러 의존성들을 주입하고 있습니다.

 

왜 콜백일까?? 전략패턴의 전략들이 Clinet 쪽 (뒤에서 ) 실행 된다고 해서 call back이라고 한다고 한다..

 

Context가 템플릿 역할, Strategy 뒤로 넘어간다. 스프링은 이방법을 사용한다.. 그래서

 

JdbcTemplate, RestTemplate, TransactionTemplate, RedisTemplate... 등 정말 많다. 그래서 템플릿 즉 콜백패턴을 알면 스프링을 이해하는데 도움이 된다.

 

void callback() {
	XXXTemplate tempalte = new XXXTemplate();
    template.execute(() -> {
    	// 비즈니스 로직 실행
    });
}

 

전략 패턴과 완전 똑같고 람다식을 적용하면 템플릿 콜백 패턴이라고 스프링에서 사용하는 전략패턴을 의미한다.

 

 

결론

 

전략 패턴의 context == 콜백 패턴의 template

 

전략 패턴의 Strategy == 콜백 패턴의 CallBack

 

이라고 정리하며면 되겠다.

반응형