(18) : template method pattern
서론
이번 포스팅도 마찬가지로 토비의 스프링 1권에서 소개하는 패턴 중 하나인 템플릿 패턴이다. 이는 3장 전체를 설명해주는 핵심 개념으로 JDBC 커넥션을 리팩토링하기 위해 소개하는 패턴이다.
템플릿 메소드 패턴이란
상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 한다. – 토비의 스프링 3.1
위에서 언급한 바와 같이 DB connection 은 고정하고, sql만 따로 처리하고 싶을때 활용할 수 있다.
예제
간단한 예제를 통해 확인해보면 쉽게 이해할 수 있다. 아래는 구현하고자 하는 클래스의 UML이다.
- 추상 클래스
public abstract class AbstractClass {
protected abstract void hook1();
protected abstract void hook2();
public void templateMethod() {
hook1();
hook2();
}
}
- 구체 클래스
public class ConcreteClass extends AbstractClass {
@Override
protected void hook1() {
System.out.println("ABSTRACT hook1 implementation");
}
@Override
protected void hook2() {
System.out.println("ABSTRACT hook2 implementation");
}
}
위와 같이 추상클래스에서 hook1(), hook2() 메소드를 순차적으로 활용하는 templateMethod()를 구체화하고, 구체 클래스에서 각 hook1(), hook2()를 오버라이딩하여 원하는대로 동작할 수 있게 만들어주는 전략이다.
Author And Source
이 문제에 관하여((18) : template method pattern), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lshn1007/Spring-18-template-method-pattern저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)