1. Template Method Pattern
2. Example
코드로 위의 구조를 한번 만들어 보겠습니다.
public abstract class AbstractClass {
protected abstract void hook1();
protected abstract void hook2();
public void templateMethod() {
hook1();
hook2();
}
}
다음은 ConcreteClass 입니다.
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");
}
}
TemplateMethodPatternClient 클래스입니다.
public class TemplateMethodPatternClient {
public static void main(String[] args) {
AbstractClass abstractClass = new ConcreteClass();
abstractClass.templateMethod();
}
}
코드를 살펴보시면 아시겠지만 추상 클래스에서는 templateMethod()를 통해 호출할 메소드를 구현합니다. 그리고 AbstractClass를 상속받아 구현한 ConcreteClass에서 구체적인 hoo1(), hook2() 메소드의 구현이 정의됩니다.
즉, 자주 변경되는 기능인 hook1(), hook2()는 슈퍼클래스에서 추상 메소드로 정의하고 추상 클래스를 구현한 클래스에서 구체적인 방법을 결정하는 것 입니다.
REFERENCE
https://yaboong.github.io/design-pattern/2018/09/27/template-method-pattern/
'디자인패턴' 카테고리의 다른 글
빌더 패턴(Builder Pattern)이란? (0) | 2020.07.13 |
---|---|
팩토리 메소드 패턴(Factory Metod Pattern)이란? (0) | 2020.07.13 |
MVC 패턴이란 (0) | 2020.03.24 |
디자인패턴이란 (0) | 2019.10.08 |