Template Pattern

장점

  • 중복코드 줄이고 , 코드의 재사용성을 높인다.

  • 메인업무를 관리하기 편하다.

  • 추상화 된 메서드의 재정의를 통한 클래스 확장에 유리

  • 상위 클래스 메서드만으로도 전반적은 기능동작을 이해할수 있다.

전략패턴 과 비교

전략패턴(Strategy Pattern)과 Template Pattern은 사용 목적으로 구분된다. 전략패턴은 알고리즘에 대한 숨김, 그리고 쉽게 교체,변경 할수 있음. 하지만 Tempate Pattern 은 알고리즘의 특정 단계만 컨트롤하고 싶을경우 사용한다.

코드 예시

public abstract class Game {
    abstract void initialize();
    abstract void startPlay();

    abstract void endPlay();

    public final void play(){
        initialize();
        startPlay();
        endPlay();
    }
}
public class CarGame extends Game{
    @Override
    void initialize() {
        System.out.println("레이싱게임초기화 진행중...준비하세요!");
    }

    @Override
    void startPlay() {
        System.out.println("레이싱게임 시작!");
    }

    @Override
    void endPlay() {
        System.out.println("레이싱게임 종료!");
    }
}
public class FootballGame extends Game{

        @Override
        void initialize() {
            System.out.println("축구게임초기화 진행중...준비하세요!");
        }

        @Override
        void startPlay() {
            System.out.println("축구게임 시작!");
        }

        @Override
        void endPlay() {
            System.out.println("축구게임 종료!");
        }
}
public class MainGameTest {
    public static void main(String[] args) {
        Game game = new FootballGame();
        game.play();
        System.out.println();
        game = new CarGame();
        game.play();
    }
}

소스코드

Last updated