강의

멘토링

커뮤니티

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

gslee100님의 프로필 이미지
gslee100

작성한 질문수

스프링 핵심 원리 - 고급편

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

OrderRepositoryV3 sleep 함수 관련 질문

작성

·

481

1


[질문 내용]
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

1

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

안녕하세요. gslee100님

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

감사합니다.

gslee100님의 프로필 이미지
gslee100

작성한 질문수

질문하기