본문 바로가기
카테고리 없음

템플릿 메소드 패턴(Template Method Pattern)에 대하여

by kangs' tong 2023. 11. 20.

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

템플릿 메소드 패턴은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 알고리즘의 구조를 정의하는 추상 클래스를 만들고, 일부 메소드는 상속받은 클래스에서 구현하도록 하는 패턴이다.

패턴 구성요소

추상 클래스(Abstract Class)

추상 클래스는 알고리즘의 구조를 정의하는 역할을 한다. 추상 클래스는 일반 메소드와 추상 메소드로 이루어져 있으며, 일반 메소드는 기본적인 알고리즘의 구조를 정의하고 추상 메소드는 하위 클래스에서 구체적인 기능을 구현하는 데 사용된다.

구체 클래스(Concrete Class)

구체 클래스는 추상 클래스를 상속받아 추상 메소드를 구현하는 역할을 한다. 구체 클래스에서는 추상 클래스에서 정의된 일반 메소드와 추상 메소드를 구현하여 전체 알고리즘을 완성한다.

예시

아래는 템플릿 메소드 패턴의 예시 코드이다.

public abstract class AbstractClass {

    public void templateMethod() {
        someAbstractMethod();
        someConcreteMethod();
    }

    abstract void someAbstractMethod();

    void someConcreteMethod() {
        System.out.println("This is a concrete method.");
    }

}

public class ConcreteClass extends AbstractClass {

    @Override
    void someAbstractMethod() {
        System.out.println("This is an implementation of the abstract method.");
    }

}

위 코드에서 AbstractClass는 추상 클래스로, templateMethod라는 템플릿 메소드를 정의하고 있다. 이 메소드는 someAbstractMethod라는 추상 메소드와 someConcreteMethod라는 일반 메소드를 호출한다.

ConcreteClass는 구체 클래스로, someAbstractMethod를 구현하여 추상 클래스의 템플릿 메소드를 완성시키고 있다.

템플릿 메소드 패턴의 장점

  • 알고리즘의 구조를 한 클래스에서 정의하고 있기 때문에, 코드의 재사용성과 유지보수에 용이하다.
  • 알고리즘의 구조를 한 눈에 파악하기 쉽다.
  • 다형성과 조합하여 다양한 알고리즘의 구현이 가능하다.

템플릿 메소드 패턴은 다양한 분야에서 사용되는 유용한 디자인 패턴으로, 오리게임에서 각 오리의 플레이 방법을 일관성있게 관리하는 등 다양한 상황에서 응용될 수 있다.

이상으로 템플릿 메소드 패턴에 대한 설명을 마친다. 이 패턴은 알고리즘의 구조를 정의하는 추상 클래스와 추상 메소드를 구현하는 구체 클래스로 이루어져 있으며, 코드의 재사용성과 유지보수에 용이하다는 장점이 있다.

댓글