인프런 커뮤니티 질문&답변

gslee100님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 고급편

템플릿 메서드 패턴 - 적용1

OrderRepositoryV3 sleep 함수 관련 질문

22.01.05 10:38 작성

·

412

0


[질문 내용]
OrderRepository class 에서 Thread.sleep()을 바로 save() 로직안에서 사용 안하고 따로 private 함수로 빼서 sleep()을 다시 만든 이유가 있을까요??
 
 
public void save(String itemId) {

        AbstractTemplate<Void> template = new AbstractTemplate<>(trace) {
            @Override
            protected Void call() {
                if (itemId.equals("ex")) {
                    throw new IllegalStateException("예외 발생!");
                }
                sleep(1000);
                return null;
            }
        };
        template.execute("OrderRepository.save()");
    }

    private void sleep(int millis) {
        try {
            Thread.sleep(millis);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

2022. 01. 06. 22:28

안녕하세요. gslee100님

안에서 사용하셔도 됩니다. 그런데 try, catch 로직이 원본에 들어가게 되어서, 원본 로직이 지저분해지는 것을 방지해기 위해 별도로 만들었습니다.

감사합니다.

gslee100님의 프로필 이미지

작성한 질문수

질문하기