====== Template Callback Pattern ====== * 전략 패턴(Strategy Pattern)의 한 종류인데, 전략을 익명 클래스 혹은 lambda 함수로 받는다. * 나는 [[springframework:aop|Spring AOP]] 로 뭔가를 처리하는 것보다는 Template Callback Pattern 으로 무언가를 시작하기전에 할일과 그 안에서 할 전략을 수행할 익명클래스, 그리고 후처리를 처리하게 만드는 것을 더 선호한다. * AOP는 명확하게 작동이 눈에 안보이지만 템플릿 콜백 패턴은 명확하게 눈에 보인다. * [[:springframework|Spring Framework]]는 다양하게 Template Callback Pattern 을 사용한다. * 대표적으로 [[https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/support/TransactionTemplate.html|TransactionTemplate]] 이 그렇다.