템플릿 콜백 패턴

salgu·2021년 12월 20일
0

Spring

목록 보기
18/22

변하지 않는 부분을 템플릿 역할로 두고
변하는 부분은 파라미터로 넘겨 실행 가능하게 하는 코드를 콜백이라고 합니다.
콜백은 필요에 따라 즉시 실행할 수도 있고 나중에 실행할 수도 있습니다.
스프링에서 이름에 ~~Template가 있다면 템플릿 콜백 패턴으로 만들어져 있다고 생각하면 됩니다.

interface code

public interface Callback {
      void call();
}

template code

  @Slf4j
  public class TimeLogTemplate {
	public void execute(Callback callback) {
		long startTime = System.currentTimeMillis(); //비즈니스 로직 실행
		callback.call(); //위임
		//비즈니스 로직 종료
		long endTime = System.currentTimeMillis(); long 		resultTime = endTime - startTime; log.info("resultTime={}", resultTime);
	} 
  }

test code

/**
*템플릿 콜백 패턴-람다
*/
    @Test
    void callbackV2() {
          TimeLogTemplate template = new TimeLogTemplate(); 
          template.execute(() -> log.info("비즈니스 로직1 실행")); 
          template.execute(() -> log.info("비즈니스 로직2 실행"));
    }










reference : 김영한님

profile
https://github.com/leeeesanggyu, leeeesanggyu@gmail.com

0개의 댓글