본문 바로가기
디자인패턴

템플릿 메소드(Template Method Pattern) 패턴이란?

by byeongoo 2020. 7. 13.

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/

 

디자인패턴 - 템플릿 메소드 패턴

개요 객체지향 디자인 패턴 중 템플릿 메소드 패턴에 대해 알아본다. AbstractMap 에 사용된 템플릿 메소드 패턴을 살펴본다. 템플릿 메소드 패턴 구현시 추상클래스가 아닌 인터페이스를 사용하면

yaboong.github.io

 

'디자인패턴' 카테고리의 다른 글

빌더 패턴(Builder Pattern)이란?  (0) 2020.07.13
팩토리 메소드 패턴(Factory Metod Pattern)이란?  (0) 2020.07.13
MVC 패턴이란  (0) 2020.03.24
디자인패턴이란  (0) 2019.10.08