전략패턴(Strategy Pattern)과 Template Pattern은 사용 목적으로 구분된다. 전략패턴은 알고리즘에 대한 숨김, 그리고 쉽게 교체,변경 할수 있음. 하지만 Tempate Pattern 은 알고리즘의 특정 단계만 컨트롤하고 싶을경우 사용한다.
Copy public abstract class Game {
abstract void initialize ();
abstract void startPlay ();
abstract void endPlay ();
public final void play (){
initialize() ;
startPlay() ;
endPlay() ;
}
}
Copy public class CarGame extends Game {
@ Override
void initialize () {
System . out . println ( "레이싱게임초기화 진행중...준비하세요!" );
}
@ Override
void startPlay () {
System . out . println ( "레이싱게임 시작!" );
}
@ Override
void endPlay () {
System . out . println ( "레이싱게임 종료!" );
}
}
Copy public class FootballGame extends Game {
@ Override
void initialize () {
System . out . println ( "축구게임초기화 진행중...준비하세요!" );
}
@ Override
void startPlay () {
System . out . println ( "축구게임 시작!" );
}
@ Override
void endPlay () {
System . out . println ( "축구게임 종료!" );
}
}
Copy public class MainGameTest {
public static void main ( String [] args) {
Game game = new FootballGame() ;
game . play ();
System . out . println ();
game = new CarGame() ;
game . play ();
}
}