模板方法模式
示例:
public class Test {
public static void main(String[] args) {
Game game = new BasketballGame();
game.play();
System.out.println("==================================");
Game game1 = new Football();
game1.play();
}
}
abstract class Game {
abstract void initialize();
abstract void startPlay();
abstract void endPlay();
//前提条件
private void premise() {
System.out.println("When I have free time");
}
public final void play() {
premise();
//初始化游戏
initialize();
//开始游戏
startPlay();
//结束游戏
endPlay();
}
}
class BasketballGame extends Game {
@Override
void initialize() {
System.out.println("Basketball game initialize...");
}
@Override
void startPlay() {
System.out.println("Basketball Game Started.Enjoy the game!");
}
@Override
void endPlay() {
System.out.println("Basketball Game Over!");
}
}
class Football extends Game {
@Override
void initialize() {
System.out.println("Loading...");
System.out.println("Football Game Initialized! Start playing.");
}
@Override
void startPlay() {
System.out.println("Football Game Started. Enjoy the game!");
}
@Override
void endPlay() {
System.out.println("Football Game Finished!");
}
}