Template Method Pattern

Design Pattern

템플릿 메서드 패턴

템플릿 메서드 패턴이란?


템플릿 메서드 패턴 장점


템플릿 메서드 패턴 단점


사용 예시



//부모 클래스
@Slf4j
public abstract class AbstractTemplate {

    public void execute() {
        long startTime = System.currentTimeMillis();
        //비즈니스 로직 실행
        call(); //상속
        //비즈니스 로직 종료
        long endTime = System.currentTimeMillis();
        long resultTime = endTime - startTime;
        log.info("resultTime={}", resultTime);
    }

    protected abstract void call();
}

//자식 클래스
@Slf4j
public class SubClassLogic extends AbstractTemplate {

    @Override
    protected void call() {
        log.info("비즈니스 로직 실행");
    }
}

@Slf4j
public class TemplateMethodTest {

	//별도의 클래스 사용
    void templateMethod1() {
        AbstractTemplate template = new SubClassLogic();
        template.execute();
    }

	//익명 내부 클래스 사용
    void templateMethod2() {
        AbstractTemplate template = new AbstractTemplate() {
            @Override
            protected void call() {
                log.info("비즈니스 로직 실행");
            }
        };
        template.execute();
    }
}


출처

스프링 핵심 원리 - 고급편 by 김영한